所以我有这个表格,我通过用ng-repeat迭代一个对象列表来渲染。我还能够对预定义的字符串集进行一些过滤,方法是将它们与ng-model一起列在元素中,并让用户从列表中进行选择。然后和我的ng-repeat一起我有一个ng-if只显示那些通过过滤器的对象。但是,我还希望能够完全禁用过滤器并一次列出所有对象,这就是我的ng-if搞砸了。
示例数据:
[
{
"key": "val A"
},
{
"key": "val B"
},
{
"key": "val A"
}
]
HTML代码:
<!-- List of strings to filter on -->
<select ng-model="keyFilter">
<option>Val A</option>
<option>Val B</option>
</select>
<!-- List objects in table -->
<table>
<thead>...</thead>
<tbody>
<tr ng-repeat-start="object in objects"
ng-if="object.key == keyFilter">
...
</tr>
<tr ng-repeat-end>
<!-- Expandable inline table -->
</tr>
</tbody>
</table>
我得到了这个功能,当我在选项集中选择“Val A”或“Val B”时,表格会更新并仅显示这些对象。但是,我真的不知道如何让所有对象一次显示。我想在ng-if之前进行初步检查,确定'keyFilter'是否为null。也就是说,如果过滤器适用。
答案 0 :(得分:0)
更改
ng-if="object.key == keyFilter"
到
ng-if="object.key === keyFilter || !keyFilter"
这样,如果没有keyFilter(!keyFilter
),则会显示所有数据。