2015-11-11 2 views
0

У меня есть массив объектов = [1,2,3,4,5] с html. Каков правильный способ обновления внутри ng-repeat, обусловленный значения массива?. Вложу пример:AngularJS update ng-repeat по параметру в зависимости от массива ng-repeat

<ul> 
<li ng-repeat="nr in array"> 
<p> {{ nr}} </p> 
    <ul> 
     <li ng-repeat="stuff in stuffs(nr)"> {{stuff}} </li> 
    </ul> 
</li> 
</ul> 

я пытался сделать функцию в области видимости контроллера:

scope.stuffs = function(ret){ 
      ...... 
return arrayConditionedbyNr; 
} 

, но бросает ошибку:

Uncaught Ошибка: $ 10 дайджеста() итераций. Aborting! Наблюдатели, уволенные в последние 5 итераций: ...

не могли бы вы направить меня в правильном направлении?

+0

Проблема в '......'. Если вы каждый раз воссоздаете новый массив, вы столкнетесь с этой проблемой. Покажите нам ** полный ** минимальный пример. –

+0

не могли бы вы показать массив материалов? – macrog

+0

Если вы используете lodash или подчеркивание, вы можете использовать функцию утилиты '_.range', как показано здесь: https://lodash.com/docs#range. Учитывая '_.range (4)' он вернет [0,1,2,3] –

ответ

0

это мой HTML:

<h2> Last Updates </h2> 
<ul> 
<li ng-repeat="cat in eachCateg"> 
<h3> {{cat}} </h3> 
    <ul> 

    <li ng-repeat="game in eachGame(cat)"> 
      <p>{{game.id}}</p> 

    </li> --> 

    </ul> 
</li> 
</ul>  

это мой контроллер:

applicaton.controller('homeController', ['$scope','$http','$stateParams','$q',function(scope,http,stateParams,q){  


    // server request with http angular.js, taking category list from JSON for scope.eachCateg 
       var getCategories = http.get('data/menu/menu.json') 
       .success(function(result){ 
         scope.eachCateg = result.categories; 
       }); 

       scope.eachGame = function(categ) { 

       var httpRequest = http.get('data/games/'+ angular.lowercase(categ)+'/urlThumb.json') 
         .success(function(result){ 
          return result; 
         }) 

       return q.all([httpRequest]).then(function(result){ 

           return result[0].data; 
          }) 

       } 
}]); 

так вот как я пытаюсь обновить список, и я получил эту ошибку. Похоже, что он возвращает мне обещание, а не фактические данные. Как я могу сделать, чтобы отправить мне взамен нужные данные?

+0

Я решил проблему. Спасибо –