我有一个自定义指令,其中包含<select>
和<input>
。
如果我提出<my-custom-directive ng-change="vm.someFunction()">
,如何将ng-change
添加到指令模板中标记内的<select>
?
答案 0 :(得分:3)
您可以使用&#39;&amp;&#39;将功能传递到指令的范围。因此,在定义指令时,请按以下方式指定范围:
scope: {
'myChangeFunction' : '&'
}
在您的模板中,您可以使用它
<select ng-change="myChangeFunction()">
在您的客户端代码中,您可以指定:
<my-custom-directive my-change-function="vm.someFunction()">
答案 1 :(得分:0)
如果我没有误解您的问题,您希望将指令ng-change添加到指令模板中的select。只需将ng-change添加到select并在指令控制器中处理事件。
指令模板:
<select ng-model="model.id" ng-change="selectChange()">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
指令:
app.directive("testDirective", function(){
return{
restrict: 'E',
templateUrl: 'testDirective.html',
controller: function($scope){
$scope.selectChange = function(){
console.log('select change!');
}
}
}
})
看看这个羽毛球员。