我正在动态添加多个组合框。如果在以前存在的组合框中选择了一个值,那么我将从数组中删除它。最终结果必须在组合框中选择唯一的值。我决定通过过滤掉以前存在的值来实现这一点。这是正确的方法吗? 到目前为止,我的过滤器不起作用。
<div ng-repeat="choice in $ctrl.inputFilterRows">
<md-select ng-model="choice.name">
<md-option ng-repeat="filter in choice.filters" value="{{filter.value}}" | filter:filterTest()>
{{filter.value}}
</md-option>
</md-select>
</div>
<md-button ng-click="$ctrl.addFilter()">ADD FILTER</md-button>
控制器:
var filtersArray = [
{ value: 'Filter1' },
{ value: 'Filter2' },
{ value: 'Filter3' }
];
$scope.filterTest = function () {
return function (item) {
if (item.value === 'Filter3') {
return true;
}
return false;
};
};
self.addFilter = function () {
var index = self.inputFilterRows.length;
var newItemNo = index + 1;
self.inputFilterRows.push({ 'name': 'inputFilter' + newItemNo, 'input': '' });
self.inputFilterRows[index].filters = filtersArray;
};
答案 0 :(得分:0)
我今天有一个类似的问题,我所缺少的是使用正确的过滤器。也许这篇文章可以帮助您: