我正在使用Angular下拉多选模块。 http://dotansimha.github.io/angularjs-dropdown-multiselect/#/
我使用它的事件功能,但即使我点击下拉菜以外的任何其他地方,它也会一直触发。
Plunkr:
http://plnkr.co/edit/hlsaiG?p=preview
的Javascript
var jayApp = angular.module('jayApp',['angularjs-dropdown-multiselect']);
jayApp.controller('jayController', function($scope) {
$scope.example1model = [];
$scope.example1data = [ {id: 1, label: "David"}, {id: 2, label: "Jhon"}, {id: 3, label: "Danny"}];
// MultiSelect Drop down select - Event
$scope.onItemSelect = function(property) {
console.log('selecting > ' +property);
}
$scope.onItemDeselect = function(property) {
console.log('deselecting : ' +property);
}
})
HTML
下拉:
<div ng-dropdown-multiselect="" options="example1data" selected-model="example1model" events="onItemSelect(example1model); onItemDeselect(example1model)">
</div>
<br>
User <input type='text' name='dummy'> <br><br>
Password <input type='password' name='pass'> <br><br>
<input type='submit'>
</body>
答案 0 :(得分:3)
指令ng-dropdown-multiselect的events属性需要一个JS对象,
代替
events="onItemSelect(example1model); onItemDeselect(example1model)"
。
请参阅此Plunkr中的完整解决方案:http://plnkr.co/edit/lsaLqUYm4haN1qdR6Omt?p=preview
答案 1 :(得分:2)
是,确实是这样的。我相信它闻起来,但那是怎么回事 现在,这真的是一个问题吗?您仍然可以使用它。虽然,我建议在他们的GitHub项目上创建问题票证。
另一方面,您可能希望这可以像onChange
事件一样工作。您可能很高兴知道目前有一个待处理的PULL请求,用于在 AngularJS Dropdown Multiselect 中实际添加对onChange
事件的支持:here&#39; sa link to the pull request我正在谈论。
如果您无法等待此功能合并,只需查看PawelDecowski's forked project (link)上的主分支。
答案 2 :(得分:0)
您可以这样内联
<div ng-dropdown-multiselect
options="regions_options"
selected-model="regions_selected"
events="{ onItemSelect: someFunction }">
甚至通过扩展事件对象来内联多个回调,如下所示:
events="{ onItemSelect: someFunction, onInitDone: functionToBeExecutedOnInitDone }"
请注意,我们正在引用该函数,而不是调用它。 someFunction-不带()。