У меня есть этот фрагмент кода в моем контроллере:
$scope.$on('$ionicView.enter', function() {
$scope.nodeId = $stateParams.studynodeRef;
Studies.fetchCollection($scope.nodeId).then(function(data){
$scope.y = angular.fromJson(data.list);
$scope.collections = angular.fromJson($scope.y[0].collections);
console.log($scope.collections);
})
});
Причина, по которой у меня $ scope. $ On, заключается в том, что я хочу, чтобы nodeId обновлялся каждый раз, когда я вводил представление, чтобы он мог обновлять коллекции. Теперь, прежде чем у меня была функция $ scope. $ On, и у меня была только функция Study.fetchCollection, я смог выполнить итерацию через коллекции в моем шаблоне следующим образом:
<ion-list ng-controller="StudyCtrl">
<ion-item ng-repeat="collection in collections" nav-clear menu-close ng-click="go('app.studies')" class="item item-icon-left brand-base-text-color">
<i class="icon ion-ios-paper"></i>
{{collection.name}}
</ion-item>
Но теперь он ничего не показывает. Даже если я просто попытаюсь отобразить {{коллекции}}, он ничего не показывает. Консоль возвращает $ scope.collections как список объектов, но я не думаю, что применяется область $ scope, поэтому {{collections}} пуст, и я не уверен, как использовать $ scope. $ Apply() в этот контекст. Я был бы очень признателен, если бы кто-нибудь мог сказать мне, как исправить это
Одним из способов преодоления этого является создание функции и вызов внутри контроллера, и поскольку контроллер подключен к представлению, он будет обновляться каждый раз, когда вы входите в представление. Что-то вроде этого
$scope.onLoad = function() {
$scope.nodeId = $stateParams.studynodeRef;
Studies.fetchCollection($scope.nodeId).then(function(data){
$scope.y = angular.fromJson(data.list);
$scope.collections = angular.fromJson($scope.y[0].collections);
console.log($scope.collections);
})
}
$scope.onLoad();