2016-05-13 67 views
0

我是新角js。有一些麻煩解決這個問題。使用角度js過濾器從列表中刪除值

假設我有這樣的:

var app = angular.module('myApp', []); 

app.controller('myCtrl', function($scope) { 
    $scope.num = ["1", "2", "3","toto","5","6","toto","7"]; 

}); 

如何使一個迭代,使所有的「TOTO」從列表中刪除並返回數組沒有「TOTO」。我曾嘗試使用過濾器,但它不工作。我如何使用過濾器來做到這一點?謝謝

請幫助一下。

回答

3

,如果你想使用JavaScript過濾功能或角過濾器使用它像

var app = angular.module('myApp', []); 

app.controller('myCtrl', function($scope) { 

    $scope.num = ["1", "2", "3","toto","5","6","toto","7"]; 

    $scope.num = $scope.num.filter(function(n){ 
     return (n != "toto") 
    }); 
    console.log($scope.num) 
}); 
+1

你爲什麼從謂詞返回元素?它也會過濾掉錯誤的元素。 –

+0

是的,你是對的我已經更新了我的答案 – sumair

1

不知道。

@sumair表明你的JavaScript之一,這裏是一個角度用$filter

var app = angular.module('myApp', []); 

app.controller('myCtrl', function($scope, $filter) { 
    $scope.num = ["1", "2", "3", "toto", "5", "6", "toto", "7"]; 

    $scope.num = $filter('filter')($scope.num, function(item) { 
     return item !== 'toto'; 
    }); 
}); 

您可能要隔離傳遞到$過濾器的功能,這樣就可以直接使用它從HTML改變

JS:

var app = angular.module('myApp', []); 

app.controller('myCtrl', function($scope) { 

    $scope.num = ["1", "2", "3","toto","5","6","toto","7"]; 

    $scope.filterCriteria = function(item) { 
     return item != 'toto'; 
    }; 
}); 

HTML:

不接觸模型視圖
<ul> 
    <li ng-repeat="item in num | filter:filterCriteria" ng-bind="item"></li> 
</ul> 
+0

嗨..感謝您的幫助。儘管如此,它沒有工作,我有一個角度版本的空白頁..沒有錯誤.. – Povertyman

+0

https://plnkr.co/edit/orvWqvzaxg2dkCJtFPbf?p=preview – Povertyman

+0

你沒有正確引導角,看到這一個:https://plnkr.co/edit/6EaRknVsvaHdFf7u6URh?p=preview – cfz42