ng-repeat не работает

Я пытаюсь вытащить все элементы из моего массива под названием "коллекции". Когда я ввожу вызов в моем HTML, я вижу только полный код для первого элемента в массиве на моей странице. Я пытаюсь получить только "edm.preview", который является изображением элемента. Я использую Angular Firebase и API под названием Europeana. Мое приложение позволяет пользователю искать и выбирать изображения, которые ему нравятся, и сохранять их для этого конкретного пользователя.

вот JS:

  $scope.users = fbutil.syncArray('users');

  $scope.users.currentUser.collections = fbutil.syncArray('collections');
  $scope.addSomething = function (something) {
    var ref = fbutil.ref('users');
    ref.child($rootScope.currentUser.uid).child('collections').push(something);
  }
  $scope.addSomething = function(item) {
      if( newColItem ) {
        // push a message to the end of the array
        $scope.collections.$add(newColItem)
          // display any errors
          .catch(alert);
       }
    };

и HTML:

<ul id="collections" ng-repeat="item in collections">
  <li ng-repeat="item in collections">{{item.edmPreview}}</li>
</ul>

1 ответ

Решение

Сначала удалите внешнюю ng-repeat, Вы хотите добавить только ng-repeat директива к элементу, который повторяется, в этом случае <li>,

Во-вторых, из вашего кода AngularJS, похоже, вы хотите зациклить users.currentUser.collections и не только collections:

 <ul id="collections">
   <li ng-repeat="item in users.currentUser.collections">{{item.edmPreview}}</li>
</ul>

И в-третьих, вы определяете функцию $scope.addSomething дважды в вашем коде JavaScript. Прямо сейчас, второе определение функции (которое, кстати, должно быть изменено, чтобы обновить $scope.users.currentUser.collections а так же) полностью заменит первое.

Другие вопросы по тегам