我想像这样使用angular的ng-repeat过滤器:
<div ng-repeat="trade in trades | filter:searchTrades | orderBy:predicate:reverse">
这里的问题是输入控件,我想将“searchTrades”绑定到控制器外的存在并查看ng-repeate存在的位置。输入字段存在于控制器外部,这是有充分理由的。这是一个全局搜索输入,我打算使用与每个控制器不同。所以我需要根据哪个控制器/视图处于活动状态,为搜索输入提供不同的行为。
答案 0 :(得分:1)
这是范围问题,也是范围之间的事件。由于angular使用原型继承,您仍然可以访问“父”范围属性并对它们做出反应。
如果在父控制器上有searchTrades
,子控制器就可以访问它。 注意如果子控制器修改searchTrades
它将生成“新副本”,如果您需要使用$scope.$emit
和$scope.$on
<强> Here is a plunker to look at 强>
考虑以下
<强>控制器强>
function MainCtrl($scope, ...) {
$scope.search = 'My search term'
}
function ChildCtrl1($scope, ...) {
$scope.items = ['Foo', ... ]
}
查看强>
<body ng-controller="MainCtrl">
<label>Search</label> <input ng-model="search" />
<div ng-controller="ChildCtrl1">
<ul>
<li ng-repeat="item in items | filter:search">{{item}}</li>
</ul>
</div>
</body>
ChildCtrl1将从父控制器继承search
,它可以用作“普通”