[英]how to _.flatten with a parent array and an array nested ? (lodash)
我有一個名為sports
的數組,並且該數組內的另一個數組是leagues
但我需要使這些數組成為_.flatten
因為我的角度過濾器存在問題。
看一下數據,在第一個包含"name":"Live Betting"
數組中"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"
},
...
這就是帶有返回數組的promise的解決方案,如您所知,數據是由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
我不確定我是否完全了解您的要求,但我認為您可以執行以下操作。
在控制器中添加一個函數以創建展平的數組:
$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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.