Dropdown multiselect - 事件触发所有时间

时间:2015-12-07 16:59:07

标签: angularjs

我正在使用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>

3 个答案:

答案 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-不带()。