如何用另一个字符串数组过滤ng重复中的字符串数组
How can I filter a string array in ng-repeat with another string array?
我有一个要筛选的select元素:
<select multiple="multiple" class="span2" data-ng-model="selectedParameters">
<option data-ng-repeat="parameter in availableParameters">
{{parameter}}
</option>
</select>
"available Parameters"是一个字符串数组,我可以从这里毫无问题地访问它,而"selectedParameters"则是另一个表示UI中所选元素的字符串数组。
availableParameters = ["AAA", "BBB", "CCC", "DDD"];
我在对象图下有另一个字符串数组(可在HTML中访问)
graph.parameters = ["AAA", "BBB"];
我试图通过"图形参数"过滤"可用参数",并获得如下列表:"CCC"、"DDD"
我查看了AngularJS的文档,但找不到解决问题的示例。
我所能做的就是这样:
<option data-ng-repeat="parameter in availableParameters | filter: !graph.parameters ">{{parameter}}</option>
您可以制作一个自定义过滤器来过滤掉graph.parameters
:中没有的所有项目
angular.module('yourModuleNameHere').filter('params', [function(){
return function (items, filterBy) {
return items.filter(function(currentItem){
return filterBy.indexOf(currentItem) === -1;
});
};
}]);
之后,您可以将其用作:
<select multiple="multiple" class="span2" data-ng-model="selectedParameters">
<option data-ng-repeat="parameter in availableParameters | params:graph.parameters">
{{parameter}}
</option>
</select>
您可以通过多种方式实现这一点,当数据可能发生变化时,过滤器很有用,但我认为情况并非如此,您只需要在控制器中添加一个简单的业务登录。。。看看以下内容:
var rawlist = ['foo', 'baz', 'bar'];
var blacklist = ['baz'];
var list = rawlist.filter(function(item) {
return blacklist.indexOf(item) < 0;
});
console.log('available parameters are', list);
所以,你的观点可以是:
<select ng-model="someScopeProperty" ng-options="item for item in list track by $index"></select>
相关文章:
- 将JSON转换为typescript中的字符串数组
- 在Javascript中将一个值和字符串数组转换为if语句
- 如何将正则表达式包含到字符串数组中
- JavaScript:将字符串数组转换为文本区域
- Knockout中的字符串数组
- 拆分字符串数组(JavaScript)后未定义
- 使用Javascript获取两个字符串之间的字符串数组
- 打印从Spring MVC Controller发送的字符串数组只显示“;toJSON”;在javascript中
- 将一个字符串数组解析为一个新的数组javascript
- AngularJS - 从字符串数组中连续更改文本
- 使用字符串数组中的字符填充 HTML 表
- 如何在 Javascript 中将字符串数组列表插入到表行中
- 创建二维字符串数组
- 如何从字符串数组中获取子字符串数组
- 如何将字符串数组转换为简单数组
- 按字母顺序、数字顺序和特殊字符对字符串数组进行排序
- 如何从字符串数组中获得8个随机唯一元素
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 函数,返回javascript中两个字符串数组的差值
- Javascript字符串数组转换为用逗号分隔的多个字符串