过滤功能如何工作?

时间:2014-09-26 14:06:48

标签: angularjs

我在一个例子中有这几行代码。教程解释了过滤功能匹配并返回匹配的国家/地区记录。哪里&如何设置entry.name。

myApp.controller('detailcontroller', function($scope, $routeParams, $http) {
  $scope.name=$routeParams.countryname;
  $http.get('countries.json').success(function(data) {
     var country =data.filter(function(entry) {
        return entry.name === $scope.name;
     }) [0];


  console.log(country);
});

});

1 个答案:

答案 0 :(得分:0)

它没有"设置"。您为过滤器函数指定了一个迭代器(回调)函数。

文档说:Function to test each element of the array. Return true to keep the element, false otherwise.

基本上,entry代表数组的一个元素。对于数组中的每个元素,将使用元素作为参数调用您的函数(如果您有一个国家/地区,则条目将是第一个国家/地区,然后是第二个国家/地区等)。

也许这对你来说更容易理解:

var testIfCountryMatches = function(country){
    console.log("is "+country+" France ? : "+(country.name === "France"));
    return country.name === "France";
}

var matchingCountries = data.filter(testIfCountryMatches);
var fr = matchingCountries[0];