Angularjs 无法从ng下拉菜单multiselect指令调用控制器函数

Angularjs 无法从ng下拉菜单multiselect指令调用控制器函数,angularjs,angularjs-directive,ng-dropdown-multiselect,Angularjs,Angularjs Directive,Ng Dropdown Multiselect,我需要在控制器中绑定一个事件,以便在下拉列表的值发生变化时调用。此下拉列表是一个多选下拉列表-位于指令中 我已经能够使用可用的设置自定义下拉列表-但是,无法绑定事件 这是密码 HTML: 我需要检测模型的变化,并基于此采取行动。我尝试了两种方法-将ng更改添加到下拉列表中,如下所示-但是,这不起作用 <div ng-dropdown-multiselect="" options="fruitdata" selected-model="fruitmodel" checkboxes=

我需要在控制器中绑定一个事件,以便在下拉列表的值发生变化时调用。此下拉列表是一个多选下拉列表-位于指令中

我已经能够使用可用的设置自定义下拉列表-但是,无法绑定事件

这是密码 HTML:

我需要检测模型的变化,并基于此采取行动。我尝试了两种方法-将ng更改添加到下拉列表中,如下所示-但是,这不起作用

<div ng-dropdown-multiselect="" options="fruitdata"
     selected-model="fruitmodel" checkboxes="true"
     extra-settings="fruitsettings" ng-change="onChange()">
</div>


该指令似乎允许扩展事件处理—但是,我想我没有正确地理解它

是$scope.fruitmodel存储所选项目的位置吗?您可以使用$scope.$watchCollection对更改进行操作

$scope.$watchCollection('fruitmodel', function(newValue, oldValue) {
    console.log(newValue, oldValue);
});

来自AngularJS下拉列表Multiselect的快照

似乎您必须使用:

<div ng-dropdown-multiselect="" ... events="eventsCallback"></div>

我认为这会起作用-但是,我更喜欢Fabio Ruggiero提供的方法。虽然效果很好-我意识到代码遇到了与事件处理相关的问题-当我单击“全部取消选择”时,我收到了对我的控制器的调用(从Angular调用的asp.net控制器)模型的值具有所有值,而不是预期的0值。我想我需要在blur上处理这个问题-但是,blur事件不会被触发(我使用的是angularjs 1.3.15,它显然支持blur)。虽然这样做很好-我意识到代码遇到了与事件处理相关的问题-当我单击“全部取消选择”时,我会调用我的控制器(从Angular调用的asp.net控制器)模型的值具有所有值,而不是预期的0值。我想我需要在模糊上处理这个问题——但是,模糊事件不会被触发(我使用的是angularjs 1.3.15,它显然支持模糊)。
$scope.$watchCollection('fruitmodel', function(newValue, oldValue) {
    console.log(newValue, oldValue);
});
<div ng-dropdown-multiselect="" ... events="eventsCallback"></div>
$scope.eventsCallback = {
    onItemSelect:       function () { ... },
    onSelectionChanged: function () { ... }
}