У меня возникает эта странная проблема только с одним из моих взглядов. Проблема в том, что всякий раз, когда я перезагружаю его, обновляя (Cmd + R/F5) браузер, все приложение не работает, пока я не изменю маршрут (вручную или нажав ссылку). Представление разрешает некоторые данные до его рендеринга, и я могу проверить, нет ли на сервере какого-либо запроса. В основном, когда я обновляюсь, я вижу, что все мои скрипты загружены, но мой контроллер никогда не вызывается (там был console.log), и я никогда не получаю визуализированный вид.AngularJS + ui router и обновление страницы
Вот состояние
$stateProvider.state('purchases', {
url: '/purchases',
views: {
"main": {
controller: 'PurchasesCtrl',
templateUrl: 'purchases/purchases.tpl.html'
}
},
resolve: {
purchases: function(PurchasesService, $rootScope) {
return PurchasesService.getPurchasesForUser($rootScope.user._id);
}
},
data:{ pageTitle: 'Purchases' }
});
$stateProvider.state('purchases_buy', {
url: '/purchases/buy/{itemId:[0-9a-fA-F]{24}}',
views: {
"main": {
controller: 'PurchasesBuyCtrl',
templateUrl: 'purchases/purchases_buy.tpl.html'
}
},
resolve:{
item: function(ItemsService, $stateParams){
return ItemsService.getItem($stateParams.itemId);
}
},
data:{ pageTitle: 'Buy' }
});
А вот контроллер:
.controller('PurchasesCtrl', ['$scope', 'PurchasesService', '$stateParams', 'purchases', function ( $scope, PurchasesService, $stateParams, purchases) {
$scope.purchases = purchases.data;
console.log("loaded");
$scope.predicates = ['firstName', 'lastName', 'birthDate', 'balance', 'email'];
$scope.selectedPredicate = $scope.predicates[0];
}])
.controller('PurchasesViewCtrl', ['$scope', 'PurchasesService', '$stateParams', 'purchase', function ($scope, PurchasesService, $stateParams, purchase) {
$scope.purchase = purchase.data;
}])
Я понятия не имею, почему он продолжает делать это, но это раздражает, и я хотел бы знать, что такое проблема.
У вас есть состояние по умолчанию? например, используя url: '/'. Если это так, огонь? И что такое URL-адрес, как в адресной строке при обновлении? – zewa666
URL-адрес тот же (правильный). У меня есть состояние по умолчанию, и оно тоже не отображается. Мой контроллер приложения не выполняется. – mart1nn
Контроллер не стреляет, второй, BuyalsViewCtrl правильно? Какова цель раскола? Кроме того, ваш оригинальный PurchaseCtrl выглядит скорее как услуга, поэтому, возможно, переместите эту часть в PurchaseService. В любом случае ваш код выглядит немного запутанным, поэтому предоставление скрипки поможет найти ошибку – zewa666