2014-09-04 48 views
1

我根本看不到問題,這是我的代碼。angularjs app.run沒有被調用狀態

var app = angular.module('application', ['ui.router', 'ngResource','user.controllers','user.services']); 

app.config(function ($stateProvider, $urlRouterProvider) { 

    $stateProvider.state('home', { 
    url: '', 
    templateUrl: 'views/home.html' 

    }).state('account', { 
    url: '/account', 
    templateUrl: 'views/user/account.html', 
    controller: 'UserCtrl' 

    }).state('login', { 
    url: '/login', 
    templateUrl: 'views/user/login.html', 
    controller: 'UserCtrl' 

    }).state('logout', { 
    url: '/logout', 
    templateUrl: 'views/user/logout.html', 
    controller: 'UserCtrl' 

    }).state('register', { 
    url: '/register', 
    templateUrl: 'views/user/register.html', 
    controller: 'UserCtrl' 
    }); 
}); 


app.run(function ($rootScope, $state) { 
    $rootScope.$on("$stateChangeStart", function (event, toState, toParams, fromState, fromParams) { 
    console.log('toState.name: ' + toState.name); 
    console.log('fromState.name: ' + fromState.name) 
    }); 
}); 

這似乎很簡單,但它不起作用。我確信這是一個我不瞭解Angular的小東西,所以任何幫助將不勝感激。

謝謝!

回答

2

在您發佈的代碼中,您看起來好像缺少$stateProvider.state聲明末尾處的關閉})


UPDATE:

DEMO EXAMPLE (Plunker)

+0

感謝您抽出時間來回答,但它是一個複製粘貼錯誤,我編輯的條目。 – Benoit 2014-09-04 08:16:25

+0

你知道爲什麼當我添加event.preventDefault();和$ state.go('login');在$ rootScope。$ on內部,它不會進入登錄狀態? – Benoit 2014-09-04 21:38:22

+1

在'event.preventDefault();'之前放置'$ state.go('login');'它應該可以工作 – 2014-09-05 20:12:35