如何过滤显示的数组并重新显示已过滤的列表?

时间:2015-06-18 00:36:10

标签: javascript angularjs ng-controller

所以我正在创建一个简单的AngularJS待办事项列表。我成功添加了一个列表但是当我要创建控制器来过滤完成的待办事项并将未完成的待办事项重新显示到屏幕时,我遇到了一个我无法找到的错误。我认为我的ng-submit不起作用,因为它无法在单击按钮时调用我想要调用的函数。任何帮助将非常感激。

这是我的html文件:

<div ng-contoller="CompletedController as completeCtrl">
    <input class="clearbutton" type="submit" value="Clear Completed" ng-submit="completeCtrl.unfinished()"></input>
</div>

和我的jsfile:

app.controller('CompletedController', function(){
    todoCtrl.currentTodos = [];
    this.unfinished = $filter('filter')(todoCtrl.currentTodos, array, function(currentTodo){
        return !currentTodo.status;
    });
    todoCtrl.currentTodos = this.unfinished;
});

1 个答案:

答案 0 :(得分:0)

您无法通过调用todoCtrl.currentTodos的方式从另一个控制器的范围内访问控制器的范围。您需要组合控制器,或使用服务/工厂在它们之间共享数据。

如果我读错你的unfinished错误,可以通过以下方式解决:

app.controller('CompletedController', function($scope){
    $scope.unfinished = function(){
      //function content
    }
});