在AngularJS中,如果要通过添加属性来使用自定义指令:
<input type="text" my-directive>
然后我可以在元素中添加ng-keypress="handleKeypress()"
吗? (不修改原始HTML,即 我尝试在链接功能中执行此操作:
link: function(scope, elem, attrs) {
attrs["ngKeypress"] = "handleKeypress()";
}
但它似乎不起作用。如果使用attrs["ng-keypress"]
代替attrs["ngKeypress"]
,也没有任何反应。我也可以使用jQuery或jqLite的
elem.on("keypress", function(ev) { ... });
但我也在考虑使用Angular的方式添加ngKeypress
,如果可能的话。
答案 0 :(得分:1)
试试这个,
link: function(scope, element) {
element.attr('ng-keypress', 'handleKeypress()');
element.removeAttr("my-directive"); //remove your directive attribute to restrict indefinite loops
$compile(element)(scope);
}
答案 1 :(得分:0)
<input type="text" ng-keypress="yourFunction()" my-directive>
会奏效。
以下是jsbin