Angularjs 将ngKeyUp函数传递到指令
我有一个包含输入字段的指令/模板 输入字段有一个ngKeyup和一个ngModel 我希望将ngKeyup函数传递到指令中。指令/模板中输入字段上的ngKeyup应调用此函数 此plunker显示选项1和选项2 选项1最简单且部分有效,函数仅由“=”传入,指令在ngKeyUp属性中引用它 指示 模板 这部分起作用,但未传递$event对象 在选项2中,指令以“&”的形式从控制器接收函数,尝试$parse并调用它。这对我来说根本不起作用,但我对$parse不是很熟悉 ngKeyup可以接收任何参数,例如ng keyupa、b、c、$index、$event 关键点/要求是该指令应相同,即myKeyUp应能够接受任何参数 非常感谢任何帮助或指点 谢谢Angularjs 将ngKeyUp函数传递到指令,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个包含输入字段的指令/模板 输入字段有一个ngKeyup和一个ngModel 我希望将ngKeyup函数传递到指令中。指令/模板中输入字段上的ngKeyup应调用此函数 此plunker显示选项1和选项2 选项1最简单且部分有效,函数仅由“=”传入,指令在ngKeyUp属性中引用它 指示 模板 这部分起作用,但未传递$event对象 在选项2中,指令以“&”的形式从控制器接收函数,尝试$parse并调用它。这对我来说根本不起作用,但我对$parse不是很熟悉 ngKeyup可以接收任何参数
John它的作用域必须是“&”,因为它允许您传递函数引用 您必须在模板中执行的操作是:
<input type="text" ng-model="model" ng-keyup="myKeyUp($event)" />
更新:
这里有另一种方法,你可以采取:事实证明有一个非常简单的解决方案 引述问题 我希望将ngKeyup函数传递到指令中。指令/模板中输入字段上的ngKeyup应调用此函数 事实证明,div可以简单地具有ng keyup属性,而不必位于输入字段上。 这完全解决了问题 现在,该指令仅将模型作为参数。ngKeyup不在指令范围内
ngApp.directive("searchField", ['$parse',function ($parse) {
return {
restrict: "E",
scope: {
model: '='
},
templateUrl: 'searchFieldTemplate',
replace: true,
controller: ['$scope','$attrs', function ($scope, $attrs) {
}]
};
}]);
模板现在只与模型有关
<div class="searchField">
<h4>Template</h4>
(observe the console)
<div>
<input type="text" ng-model="model" />
</div>
这实际上是一种分配,因为当您考虑它时……谢谢Aganglada,但是$event仍然没有定义:如果您查看控制台,日志显示“undefined”
ngApp.directive("searchField", ['$parse',function ($parse) {
return {
restrict: "E",
scope: {
model: '='
},
templateUrl: 'searchFieldTemplate',
replace: true,
controller: ['$scope','$attrs', function ($scope, $attrs) {
}]
};
}]);
<div class="searchField">
<h4>Template</h4>
(observe the console)
<div>
<input type="text" ng-model="model" />
</div>