如何仅为特定元素应用element.bind

时间:2014-07-15 08:35:54

标签: angularjs angular-directive

下面的

是我的指令中的一个调用控制器的片段

element.bind('change', function() {
    //alert("inside change function");
    $rootScope.selectedBankName = scope.selectedBankName;
    newvalue = scope.selectedBankName;
    $timeout(function() {
        scope.changeClient();
    }, 500);
});

如果我使用上面的代码它正在为每个元素更改调用changeclient()函数。但是我的要求是我只需要在选择框中更改值时调用changeClient函数。请告诉我如何执行此操作。

编辑:

http://plnkr.co/edit/clTJjlZRlErskt6T0Foc?p=preview

当我在文本框或下拉列表中更改某个值时,请找到plunker代码,然后单击显示警告框的任何位置。但我的要求是只有当我更改下拉值并单击任意位置(而不是文本框)时才应显示警报。

1 个答案:

答案 0 :(得分:0)

如果要在下拉模型更改时触发事件,则不需要选择编写指令。只需在选择上添加一个观察者并等待更改

$scope.$watch('age',function(newVal){
    $scope.loadMoreTweets();
});

Plunker:http://plnkr.co/edit/j3ZR32c4G8PpbLEtrFpZ?p=preview

编辑:

如果你真的选择使用指令代码,你可以在select子本身上应用指令,如果它的父div

<select enter>