我在html代码中有这个:
<md-list>
<md-list-item ng-repeat="schema in dash.filteredSchemas = (dash.items | filter: {name: dash.schemaListFilter}) | orderBy: 'schema.id'">
<h4>{{ ::schema.name }}</h4>
</md-list-item>
</md-list>
<div ng-show="dash.filteredSchemas.length">Empty</div>
问题在于,在使用此语法时,我看不到任何结果 - 如果过滤器未填充,则应显示10个结果。
注意:没有控制台错误。改为:
<md-list>
<md-list-item ng-repeat="schema in dash.items | filter: {name: dash.schemaListFilter} | orderBy: 'schema.id'">
<h4>{{ ::schema.name }}</h4>
</md-list-item>
</md-list>
<div ng-show="dash.filteredSchemas.length">Empty</div>
显示结果,但(显然)在应用过滤器时没有显示空消息且没有结果匹配。
这有什么问题?!
答案 0 :(得分:1)
如果您希望获得过滤结果但又不想破坏原始数组,则可以对'as'
使用ng-repeat
操作...
<md-list>
<md-list-item ng-repeat="schema in dash.items | filter: {name: dash.schemaListFilter} | orderBy: 'schema.id' as filteredData">
<h4>{{ ::schema.name }}</h4>
</md-list-item>
</md-list>
<div ng-show="filteredData.length">Empty</div>
因此,每当您更改过滤器查询时,结果都将设置为'filteredData',以便您可以使用此数组属性来实现您想要的...