我对过滤器有一点问题,实际上我有大约3个问题,我在这里看看你是否可以提供帮助。我的猜测是:我可以使用ng-change
进行修复,但我只是意识到这样做不正常或我使用不正确。
让我们开始吧。
我有搜索输入:
<input ng-model="query">
然后我必须与这些输入一起工作:
<div ng-repeat="sport in sports | filter:query">
<div ng-show="sport.leagues.length">
<strong>{{sport.name}}</strong>
</div>
<div ng-repeat="league in sport.leagues | filter:query">
{{league.name}}
</div>
</div>
正如您在上面所看到的那样,这是我最初的猜测,而且我强烈要求从第二个|filter:query
删除ng-repeat
应该不会。
然后我用2 ng-model
做了两个不同的输入并且工作正常,我正在阅读Angular Docs并且我决定使用ng-change
所以我这样做了:
<input ng-model="query" ng-change="query=queries">
<div ng-repeat="sport in sports | filter:query">
<div ng-show="sport.leagues.length">
<strong>{{sport.name}}</strong>
</div>
<div ng-repeat="league in sport.leagues | filter:queries">
{{league.name}}
</div>
</div>
但是这样搜索输入不起作用,你不能在那里输入任何内容。
虽然这很简单,sport.name
和league.name
都是数组,所以没有问题,因为角度过滤器只适用于数组。我不知道会发生什么。
有什么建议吗?
更新
我的代码在第一个ng-repeat
上正常运行,我遇到的问题是第二个ng-repeat
league in sport.leagues
答案 0 :(得分:1)
<input type="text" ng-model="query" placeholder="search your text">
<div ng-repeat="sport in sports | filter:query"> //filtering is done based on model that your are binding to filter pipe. Hope json is in format as required.
<div ng-show="sport.leagues.length">
<strong>{{sport.name}}</strong>
</div>
<div ng-repeat="league in sport.leagues | filter:query">
{{league.name}}
</div>
</div>