我只有一个观点,我遇到了这个奇怪的问题。问题是每当我通过刷新(Cmd + R / F5)浏览器重新加载它时,整个应用程序都无法工作,直到我更改路线(手动或通过单击链接)。视图在渲染之前解析了一些数据,我可以验证服务器没有任何请求。基本上当我刷新时,我看到我的所有脚本都被加载但我的控制器从未被调用过(在那里有一个console.log),我从来没有得到过渲染的视图。
这是州
$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;
}])
我不知道它为什么一直这样做,但它很烦人,我想知道是什么问题。