0

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

<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
});

我在这里遗漏了一些明显的东西吗?

4

1 回答 1

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
    }
});

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

于 2014-05-20T10:31:05.880 回答