[英]UI-Router not changing state when using $state.go()
我正在為ui路由器路由編寫單元測試。 但是,我無法通過。
這是我的測試, $state.current.name
給了我frontpage
, otherwise
狀態。
it('should change state to items', function() {
$state.go('items');
$rootScope.$digest();
expect($state.current.name).toBe('items');
})
狀態:
$urlRouterProvider.otherwise("/");
$stateProvider
.state('items', {
url: '/items',
templateUrl: 'js/modules/items/partials/items.html',
controller: 'ItemsController',
resolve: {
items : ['ItemService', '$q', function(ItemService, $q) {
var defer = $q.defer();
ItemService.getItems().success(function(data) {
defer.resolve(data);
});
return defer.promise;
}]
}
})
.state('frontpage', {
url: '/',
template: 'Frontpage'
})
為什么在調用$state.go('items')
之后獲得frontpage
狀態?
注入$ q,然后嘗試$ q.flush(); 更改狀態后。
在花費了幾個小時之后,我最終使用了$timeout.flush()
,我想這將清除所有的promise隊列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.