#angularjs #angular-ui-router #angular-factory
#angularjs #angular-пользовательский интерфейс-маршрутизатор #angular-фабрика
Вопрос:
Я хочу создать фабрику, которая должна возвращать имя текущего состояния, я попробовал этот код внутри контроллера:
$rootScope.$on('$stateChangeStart', function (e, toState, toParams, fromState, fromParams) {
$rootScope.tabName = fromState.name;
});
но эта информация доступна только в том случае, если вызывается конкретный контроллер, я хочу сделать эту информацию доступной во всем проекте.
Ответ №1:
Вы можете сделать это наоборот.
angular.module('app')
.run(['$state', '$cookies', '$rootScope', function($state, $cookies, $rootScope) {
$rootScope.$on('$stateChangeStart', function(e, toState, toParams, fromState, fromParams) {
$rootScope.tabName = fromState.name;
});
});
Вместо того, чтобы помещать его в контроллер, используйте его в методе запуска модуля, который будет вызываться во время инициализации приложения.