Угловой ng-повтор concat 2 Json

Я пытаюсь получить данные от 2 jsons и перечислить их в таблице :

1-й ‘ имена.json’:

[
        {
            "name": "AAAAAA",
            "down": "False"

        },

        {
            "name": "BBBBBB",
            "down": "False"
        },
        {
            "name": "CCCCC",
            "down": "True"
        }
]

Second ‘ data.json’

[
         {
            "data": "15%"
        }
]

Яваскрипт:

app.service('service', function($http, $q){
            this.getNames = function () {
    var datas =  $http.get('data,json', { cache: false});
    var names =  $http.get('names.json', { cache: false});
    return $q.all([datas, names]);
};
});

    app.controller('FirstCtrl', function($scope, service) {
     var promise = service.getNames();
     promise.then(function (data) {
     $scope.names = data.names.data;
     $scope.datas = data.datas.data;
});

Теперь я должен показать его в таблице HTML :

div ng-controller="FirstCtrl"
     <table>
        <tbody>
          <tr ng-repeat="name in names.concat(datas)">
            <td>{{name.name}}</td>
            <td ng-if="name.down === 'False'">{{name.down}}</td>
            <td ng-if="name.down !== 'False'">{{name.data}}</td>
            <td>{{name.data}}</td>
          </tr>
        </tbody>
      </table>
    </div>

I try concat () but it dont work, is there any method to show in table datas from 2 arrays by ng-repeat? Спасибо за ответы заранее!

1 ответ

  1. Я считаю, что вы можете достичь желаемого с помощью filer легко.

    var app = angular.module('app', []);
    
    app.controller('FirstCtrl', FirstCtrl);
    
    
    function FirstCtrl($scope) {
    
      $scope.names = [{
        "name": "AAAAAA",
        "down": "False"
    
      }, {
        "name": "BBBBBB",
        "down": "False"
      }, {
        "name": "CCCCC",
        "down": "True"
      }];
      $scope.datas = [{
        "data": "15%"
      }]
    
    };
    
    app.filter('getvalue', function() {
    
      return function(name, datas) {
    
        if (name.down === 'False')
          return name.down;
        else
          return datas[0].data;
      }
    
    });
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="app" ng-controller="FirstCtrl">
      <table>
        <tbody>
          <tr ng-repeat="name in names">
            <td>{{name.name}}</td>
            <td>{{name | getvalue:datas}}</td>
            <td>{{name.data}}</td>
          </tr>
        </tbody>
      </table>
    </div>