簡體   English   中英

使用$ state.go()時,UI-Router不會更改狀態

[英]UI-Router not changing state when using $state.go()

我正在為ui路由器路由編寫單元測試。 但是,我無法通過。

這是我的測試, $state.current.name給了我frontpageotherwise狀態。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM