角度过滤器 - 带控制器的语法不起作用

时间:2016-01-22 10:02:41

标签: javascript angularjs

我在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> 

显示结果,但(显然)在应用过滤器时没有显示空消息且没有结果匹配。

这有什么问题?!

1 个答案:

答案 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',以便您可以使用此数组属性来实现您想要的...