我有一个名为sports
的数组,在该数组中是另一个名为leagues
的数组,但我需要这些数组成为_.flatten
,因为我遇到了Angular过滤器的问题。
查看数据,在包含"name":"Live Betting"
的第一个数组中,还有另一个名为"leagues"
的数组,这些是我正在讨论的数组。
[
{
"id": 26,
"name": "LIVE Betting",
"priority": 0,
"leagues": [
{
"id": 3042,
"parent": 1000,
"name": "LIVE BETTING - NBA",
"sport": {
"id": 26,
"name": "LIVE Betting"
},
"lineType": "G",
"priority": [
0,
0
],
"part": "0"
},
...
这是一个承诺返回该数组的决心,因为你知道数据是由Sports
resolve: {
Sports: function(SportsFactory, AuthFactory, $q) {
var defer = $q.defer();
AuthFactory.getCustomer().then(function(customer) {
SportsFactory.getSportsWithLeagues(customer).then(function(sports) {
defer.resolve(sports);
});
});
return defer.promise;
}
}
这里是我调用解析器Sports
.controller('SportsController', function($scope, AuthFactory,
SportsFactory, Sports) {
console.log(angular.toJson(Sports, 'pretty'));
$scope.sports = [];
$scope.sportPromise = Sports;
这是一个Plunkr,让您更轻松地查看http://plnkr.co/edit/FJ45nV6gdwp3SkRglPeW?p=info
答案 0 :(得分:1)
我不确定我完全明白你在寻找什么,但我认为你可以做到以下几点。
在控制器中添加一个函数来创建扁平化数组:
$scope.leagues = function(){
var allLeagues = [];
_.each(mySports, function(sport){
allLeagues.push.apply(allLeagues, sport.leagues);
});
return allLeagues;
};
然后你可以绑定到联赛功能:
<div ng-repeat="league in leagues() | filter:query">
{{league.name}}
</div>