我对AngularJS还比较陌生,正在尝试在一个指令内部实现另一个指令。我有一个子指令basetext,它处理基本的输入事件,还有一个myTextbox,它处理与输入相关的其他任务。我制作了一个简单的plunker来演示我的问题。我已经实现了以下内容:
在html
中:
<div my-textbox placeholder="'Input the value'" caption="Name:"></div>
在myTextbox
指令模板函数中:
template: function (elem, attrs) {
return ("<label>" + attrs.caption + "</label>\
<input class='inputText' basetext='' " + "placeholder=" + attrs.placeholder +"/>");
},
以及我的 basetext
指令:
app.directive("basetext", function () {
return {
restrict:'A',
scope:{}
template: "<input ng-focus='isFocus()' ng-blur='isBlur()'/>",
link: function (scope, element, attrs) {
scope.isBlur = function () {
alert("is blurred");
}
scope.isFocus = function () {
alert("is focused");
}
}
}
});
问题在于basetext
指令的blur
事件和focus
事件根本不起作用。有没有解决这个问题的建议?谢谢。