Jyo*_*Pan 4 angularjs angularjs-filter
我有一个选择我在哪里填充某些值,如下所示:
价值观是:
$scope.obj = {codes: [
{code: 1},
{code: 2},
{code: 3}
]};
Run Code Online (Sandbox Code Playgroud)
现在我想动态过滤某些值而不对$ scope.obj值进行任何更改,即我不想显示{code:1}值.我在另一个$ scope变量中设置了这个值:
$ scope.selectedCode = {code:1};
所选代码中存在的任何值都不应显示在选择下拉列表中.我认为这可以使用angular js过滤器表达式来完成:
<select ng-options="c.code for c in obj.codes | filter:'c.code !== selectedCode .code'" ng-model="selected">
Run Code Online (Sandbox Code Playgroud)
但上面显示的是一个空的下拉.
我们非常欢迎任何帮助/指导.谢谢.:)
在控制器中创建辅助方法:
$scope.filterCodes = function(obj) {
return obj.code !== $scope.selectedCode.code;
};
Run Code Online (Sandbox Code Playgroud)
并将其用作自定义过滤器:
<select ng-options="c.code for c in obj.codes | filter:filterCodes" ng-model="selected"></select>
Run Code Online (Sandbox Code Playgroud)
UPD.还有没有控制器功能的纯模板解决方案:
ng-options="c.code for c in obj.codes | filter: '!' + selectedCode.code"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6747 次 |
| 最近记录: |