我知道只有在用户使用某些过滤器时才能显示我的元素。
例如:
$scope.elements = [{name : 'Pablo', age : 23}, {name : 'Franco', age : 98}];
<input type="text" ng-model="searchText" />
<div ng-repeat="element in elements | filter:searchText">
<p>{{ element.name }}</p>
</div>
如果用户没有写入输入类型文本标签,我不想显示已过滤的列表。 或者输入类型复选框,收音机,选择标签...
我能做的是使用ng-show指令
<div ng-repeat="element in elements | filter:searchText" ng-show="searchText.length > 0">
<p>{{ element.name }}</p>
</div>
但它似乎不合法。
有什么好主意吗?或者显然是一种原生的解决方案。
提前谢谢。
答案 0 :(得分:2)
请检查
$scope.elements = [{name : 'Pablo', age : 23}, {name : 'Franco', age : 98}];
<input type="text" ng-model="searchText.name" />
<div ng-repeat="element in elements | filter:searchText">
<p>{{ element.name }}</p>
</div>
希望这有效。
答案 1 :(得分:1)
您可以使用ng - 如果这样,代码在满足条件之前就不会运行。
<div ng-repeat="element in elements | filter:searchText" ng-if="searchText.length > 0">
<p>{{ element.name }}</p>
</div>