sch*_*mer 0 javascript conditional filter angularjs
我有两个像这样的阵列:
$scope.values_array = ['string1', 'string2', 'string3', 'string4'];
$scope.skip_array = ['string2', 'string3'];
Run Code Online (Sandbox Code Playgroud)
我尝试使用这样的ng-options:
<select ng-options="value as value for value in values_array && skip_array.indexOf(value) === -1"></select>
Run Code Online (Sandbox Code Playgroud)
这不会产生错误,但下拉列表中不会显示任何内容.如果没有"&& skip_array.indexOf(value)",它会显示values_array中的所有选项.
HTML:
<select ng-model="selectedValue" ng-options="value as value for value in values_array | filter:skipValues"></select>
Run Code Online (Sandbox Code Playgroud)
控制器:
$scope.skipValues = function(value, index, array) {
return $scope.skip_array.indexOf(value) === -1;
};
$scope.values_array = ['string1', 'string2', 'string3', 'string4'];
$scope.skip_array = ['string2', 'string3'];
Run Code Online (Sandbox Code Playgroud)
UDPATE:
如果要将额外参数传递给过滤器函数
HTML:
<select ng-model="selectedValue" ng-options="value as value for value in values_array | filter:skipValues(1)"></select>
Run Code Online (Sandbox Code Playgroud)
控制器:
$scope.skipValues = function(anInt) {
return function(value, index, array) {
return $scope.skip_array.indexOf(value) === -1 && anInt > 0;
}
};
$scope.values_array = ['string1', 'string2', 'string3', 'string4'];
$scope.skip_array = ['string2', 'string3'];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7986 次 |
| 最近记录: |