簡體   English   中英

如何使用父數組和嵌套數組_.flatten? (lodash)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM