2015-05-12 3 views
2

Можно ли получить имя динамического массива, что-то вроде friends+$index. Например:ng-repeat динамическое имя массива

ng-repeat="friend in {{'friends'+$index}}" 

Цель состоит в том, чтобы петли через различные массивы: friends1 & friends2. Я пробовал все, любую комбинацию, но безуспешно. Я также не встречал подходящих ответов.

Заранее спасибо.

+2

вы можете предоставить больше кода? где у вас есть _friends1, friends2_? – Grundy

+1

Как насчет того, чтобы в массиве добавить друзей1, friends2 и т. Д., А затем вложить ng-повторы, один внутри другого? – JDTLH9

+0

вы можете использовать массив 'friends' like' friends [$ index] ' – Grundy

ответ

1

Вы можете сделать что-то подобное.

http://jsfiddle.net/jigardafda/gw7f1qq0/1/

HTML

<div ng-app="myapp"> 
    <div ng-controller="MyCtrl"> 
     <div ng-repeat="(name, value) in frndslist"> 
      {{name}} 
      <div ng-repeat="item in value.list"> 
       {{item}} 
      </div> 
     </div> 
    </div> 
</div> 

JS

var myApp = angular.module('myapp',[]); 

myApp 
    .controller('MyCtrl', function ($scope, $rootScope) { 

     $scope.frndslist = { 
      'friend1': { 
       name: 'x1 frnd', 
       list: [ 
        "1.some1", 
        "1.some2" 
       ] 
      }, 
      'friend2': { 
       name: 'x2 frnd', 
       list: [ 
        "2.some1", 
        "2.some2" 
       ] 
      } 
     }; 
    }); 
1

Вот еще одно решение:

HTML-:

<div ng-app="App" ng-controller="AppController as controller"> 
    <ul ng-repeat="friend in friends[index]"> 
     <li>{{friend}}</li> 
    </ul> 

</div> 

Javascript:

var application = angular.module("App",[]); 

    application.controller("AppController",function($scope){ 
     friends1 =["Name1", "Name2", "Name3", "Name4"]; 
     friends2 =["Name5", "Name6", "Name7"]; 
     $scope.friends = new Array(); 
     $scope.friends.push(friends1); 
     $scope.friends.push(friends2); 
     //....... 
     $scope.index = 0; // in this example it can be 0 or 1 
    }); 
+0

Ну, как я могу это сделать, если я пытаюсь объединить 2 строковых значения? Например, 'ng-repeat =" a in (name + 'List') ". Значение строки name в этом выражении. 'JonnyList',' henryList'. Как я могу это сделать? – forguta