过滤ng-repeat时如何在过滤器上使用布尔变量?

时间:2019-06-12 13:37:07

标签: javascript angularjs boolean

我很难尝试使用选择选项中的布尔值来过滤ng-repeat列表

我尝试仅将带选择{{}}且不带方括号的布尔值放入

<div>  
    <select ng-model="mybool" ng-options="o.v as o.n for o in 
        [{ n: 'Not included', v: false }, { n: 'Included', v: true }]">
    </select>
</div>

这是表格中的html

<tr ng-repeat="item in model.items | filter:{enabled:mybool}">

<tr ng-repeat="item in model.items | filter:{enabled:{{mybool}}">

这在javascript文件中


$scope.mybool = true;

使用mybool变量时,列表不再显示。它仅显示如果我使用数据类型true或false。我希望仅看到启用状态设置为true或设置为false的选项,具体取决于选择的选项是什么。

<tr ng-repeat="item in model.items | filter:{enabled:true}">
<tr ng-repeat="item in model.items | filter:{enabled:false}">

这些工作,但是显然它们不是动态的,因为它们没有链接到选择选项。

我对angular并不陌生,来自Java背景,这使我感到困惑

1 个答案:

答案 0 :(得分:0)

在ng-repeat表达式中无需使用双花括号。第一个是正确的:

<tr ng-repeat="item in model.items | filter:{enabled:mybool}">

只需确保$ scope.model未被定义并且$ scope.model.items具有正确的值。

其余代码似乎没问题,应该可以检查以下工作示例:fiddle example