Javascript Angularjs过滤控制器内的作用域以创建新的作用域
我有一个范围变量,如下所示:Javascript Angularjs过滤控制器内的作用域以创建新的作用域,javascript,angularjs,Javascript,Angularjs,我有一个范围变量,如下所示: $scope.people = [ {'id':'1' ,'name':'John','category':'m'}, {'id':'2', 'name':'Jack','category':'m'}, {'id':'3','name':'Mark','category':'m'}, {'id':'4','name':'Ernie','category':'m'}, {'id':'5','name':'J
$scope.people = [
{'id':'1' ,'name':'John','category':'m'},
{'id':'2', 'name':'Jack','category':'m'},
{'id':'3','name':'Mark','category':'m'},
{'id':'4','name':'Ernie','category':'m'},
{'id':'5','name':'Jane','category':'w'},
{'id':'6','name':'Jill','category':'w'},
{'id':'7','name':'Betty','category':'w'},
{'id':'8','name':'Mary','category':'w'}
];
这是我为解决这个问题而创建的一个示例范围变量。但我将从一个服务获取这些数据。我想实现的是,如何将这个范围变量过滤到控制器中的不同变量中
例如,我想从给定的作用域创建2个新作用域,如下所示:
$scope.men = [
{'id':'1' ,'name':'John','category':'m'},
{'id':'2', 'name':'Jack','category':'m'},
{'id':'3','name':'Mark','category':'m'},
{'id':'4','name':'Ernie','category':'m'}
];
$scope.women = [
{'id':'5','name':'Jane','category':'w'},
{'id':'6','name':'Jill','category':'w'},
{'id':'7','name':'Betty','category':'w'},
{'id':'8','name':'Mary','category':'w'}
];
我如何做到这一点?任何知识都将非常有用您需要使用一些javascript库,如underline.js 例如
_.groupBy($scope.people, function(v){ return v.category == 'm' });
不确定源代码 您可以使用:
对于较旧的浏览器,您需要使用polyfill过滤器
或者,您也可以使用下划线的函数。hi…它工作得很好。你能告诉我是否有类似的方法连接2个作用域变量吗?作用域属性只是javascript类型,因此你可以使用concat连接数组。
function isMan(person){
return person.category == 'm';
}
function isWoman(person){
return person.category == 'w';
}
$scope.men = $scope.people.filter(isMan);
$scope.women = $scope.people.filter(isWoman);