在 AngularJS 应用程序中,我有一个带有任务列表的视图和一个带有过滤选项列表的侧边栏,用于过滤这些任务。两者都在单独的控制器中。
侧边栏
<div ng-controller="SidebarController">
<a href="" ng-click="showOnlyCompleted()">Completed</a>
</div>
任务
<div ng-controller="TaskController">
<tr ng-repeat="task in tasks | filter: search">
<td>task.title</td>
<td>task.status</td>
</tr>
</div>
边栏控制器
$scope.search = [];
$scope.showOnlyCompleted = function()
{
// set search filter
$scope.search.status = 'completed';
};
任务控制器
$scope.tasks = [
{ title: 'do something', status:'todo' },
{ title: 'do something else', status:'completed' }
];
问题是,我怎样才能使过滤器search
可以通过 SidebarController 进行操作,但仍可用于过滤来自 TaskController 的任务?这是一个范围界定问题,因为两个控制器都需要能够访问它?
我认为解决方案可能是可注入的,例如服务,但我真的不知道如何通过数据绑定使其适用于这种情况?