UI-Select2持久性更改具有多个可选项

时间:2014-05-19 09:04:33

标签: angularjs ui-select2

我想知道是否有一种简单的方法可以保留所选数据。就像select2的jquery版本的events一样。但是在角度版本中似乎没有支持 - 遗憾的是。

<select multiple="multiple" data-ui-select2 data-ng-model="data">
   ...
</select>

到目前为止,唯一有意义的是观察集合并对旧值和新值应用一些逻辑来检测是否添加或删除了某些内容。但这似乎是其他人之前可能做过的事情:)

$scope.$watch('data', function (newValue, oldValue) {
   // logic to detect if something was added or removed
});

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:0)

使用underscore.js可以很容易地检测添加或删除的项目。

$scope.$watch('data', function (newValue, oldValue) {
   // logic to detect if something was added or removed
    if (newValue.length > oldValue.length) {
        // something was added
        var added = _.difference(_.pluck(newValue, 'id'), _.pluck(oldValue, 'id'));
        // do stuff
    } else if (newValue.length < oldValue.length) {
        // something was removed
        var removed = _.difference(_.pluck(oldValue, 'id'), _.pluck(newValue, 'id'));
        // do stuff
    }
});

但它仍然是控制器中的手表,这并不理想。