2014-09-04 3 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) 
    }); 
}); 

Это кажется довольно простым, но это просто не работает. Я уверен, что это мелочь, которую я не знаю об Угловом, поэтому любая помощь будет оценена по достоинству.

Спасибо!

ответ

2

В коде, который вы отправили, похоже, что вам не хватает закрытия }) в конце вашего объявления $stateProvider.state.


UPDATE:

DEMO EXAMPLE (Plunker)

+0

Спасибо, что нашли время, чтобы ответить, но это была ошибка копипаст, я редактировал мою запись. – Benoit

+0

Знаете ли вы, почему, когда я добавляю event.preventDefault(); и $ state.go ('login'); внутри $ rootScope. $ on, он не переходит в состояние входа? – Benoit

+1

Поместите '$ state.go ('login');' перед 'event.preventDefault();' и он должен работать –

Смежные вопросы