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
а так же) полностью заменит первое.