迭代数组角度

时间:2014-01-02 16:57:28

标签: javascript angularjs

我正在关注todo list angular tutorial。现在,我想遍历我的所有待办事项列表并清除属性完成的所有项目。

现在在我的index.html文件中,我有一个按钮,其ng-click属性为“clearCompleted()”。该函数在我的js文件中看起来像这样:

$scope.clearCompleted = function () {
  $scope.todos = $filter($scope.todos, function(todo){
    return !todo.done;
  });
};

此功能有什么问题,因为它没有清除设置为完成的待办事项:true。

在更一般的问题中,我可以用“选择属性完成的所有项目是否为真”这一点的典型方式是什么,因为我更习惯于ruby而不是javascript。

2 个答案:

答案 0 :(得分:2)

$filter(name)获取具有该名称的过滤器。为了实际调用它,你可以编写`$ filter(name)(过滤器的参数 /)

有一个名为filter的预定义过滤器,可用于过滤数组。您传入一个对象进行比较:

$scope.clearCompleted = function () {
    $scope.todos = $filter("filter")($scope.todos, {done:false});
};

返回属性done的所有项目,其值为false

答案 1 :(得分:1)

试试这个语法:

$scope.todos = $filter("filter")($scope.todos, function(todo){

实施例: http://jsfiddle.net/cherniv/89Qqs/

不要忘记先将$filter服务注入控制器!