繁体   English   中英

适用于角度app的全球可用过滤器

[英]Globally accessible filter for angular app

在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>

SidebarController

$scope.search = [];

$scope.showOnlyCompleted = function()
{
    // set search filter
    $scope.search.status = 'completed'; 
};

TaskContoller

$scope.tasks = [
    {   title: 'do something', status:'todo' },
    {   title: 'do something else', status:'completed' }
];

问题是,我怎样才能使过滤器, search ,可以通过SidebarController进行操作,但是仍然可以用来过滤来自TaskController的任务? 这是一个范围问题,因为两个控制器都需要能够访问它?

我认为解决方案可能是可注入的,如服务,但我真的不知道如何通过数据绑定为这种情况做出贡献?

我在这里看到了一个很好的解决方案。 基本上只需创建一个具有某种状态的filterService,将其注入控制器并直接绑定到视图中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM