Angular UI-Router onEnter回调中的奇怪行为

时间:2015-09-02 11:59:28

标签: javascript angularjs angular-ui-router

我对UI-Router状态的onEnter回调有一个奇怪的问题。我最初想要做的是更改onEnter回调中的变量data.pagetitle

我创建了Plunkr来证明问题。我在script.js的第13行和第14行放了一个console.log。似乎$ state变量在这两行之间有所不同。

所以有两个问题:

  1. 为什么第13行和第14行的$ state似乎有所不同
  2. 如何编辑数据' onEnter回调中的对象?

1 个答案:

答案 0 :(得分:0)

尝试在状态 params 参数中添加自定义变量,然后您只需在控制器中访问它们。

var app = angular.module('mainApp', ['ui.router']);

// Routes configuration
var Config = function($stateProvider, $urlRouterProvider){

    $stateProvider
        .state('main', {
            template : '{{ pageTitle }}',
            controller : 'MainCtrl',
            params : { pageTitle : 'Hello, world!' }
        });

    $urlRouterProvider.otherwise('main');

};

Config.$inject = [
    '$stateProvider',
    '$urlRouterProvider'
];

app.config(Config);

// Controller 
var MainCtrl = function($scope, $state){

    // Methods
    function initCtrl(){
        $scope.pageTitle = $state.params.pageTitle;
    }

    // Init controller
    initCtrl();

};

MainCtrl.$inject = [
    '$scope',
    '$state'
];

app.controller('MainCtrl', MainCtrl);