如何在一个模板中使用 ng-repeat 从另一个模板中获取过滤器查询?

How to use ng-repeat in one template taking filter query from another one?

我有一个 angular 应用程序,每个状态都由两个组件组成:导航栏和导航栏下的组件。在下面的一个中,我使用 ng-repeat 来显示一些项目,我需要使用 filter:

    <div class="col-sm-2 store__item col-centered" ng-repeat="book in vm.books | toArray | orderBy:query" >
     ...
    </div>

但是ng-model="query"在不同的模板中,属于navbar组件:

<form class="navbar-form navbar-left" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search" ng-model="query">
        </div>
</form>

如何绑定它们,以便过滤器从导航栏获取查询? 谢谢

很少有建议,

  1. 您可以保留模型 "query" - 在 $rootScope 中,这样您的两个组件就可以访问相同的模型。
  2. 使用angular的事件管理器,$broadcast/$emit,这是我推荐的方式,因为它遵循解耦架构。