Angular:在这种特殊情况下使用ng-change的正确方法是什么?

时间:2015-01-23 14:26:52

标签: angularjs

我对过滤器有一点问题,实际上我有大约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.nameleague.name都是数组,所以没有问题,因为角度过滤器只适用于数组。我不知道会发生什么。

有什么建议吗?

更新

我的代码在第一个ng-repeat上正常运行,我遇到的问题是第二个ng-repeat league in sport.leagues

1 个答案:

答案 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>