访问数据部分中的ui-router状态控制器数据

时间:2015-10-27 11:54:01

标签: angularjs angular-ui-router angular-ui state

我的状态配置定义如下:

angular.module('app', ['ui.router')
.config(function ($stateProvider, $urlRouterProvider) {
       .state('element', {
        url: '/element',
        templateUrl: 'element.html',
        controller: 'ElementCtrl',
        controllerAs:'ec',
        data: {
            title: 'Element {{ec.name}}',
        }
    })
    .state('element.detail', {
        url: '/detail',
        templateUrl: 'detail.html',
        controller: 'HomeCtrl',
        controllerAs:'hc',
        data: {
            title: 'Detail {{hc.age}}',
        }
    })
.controller('ElementCtrl', function ($scope, $stateParams) {
    this.name = "myName";
})
.controller('HomeCtrl', function ($scope, $stateParams) {
    this.age = "myName22";
});

在这里,我想根据分配给控制器中变量的值动态确定data.title字段。 有没有办法做到这一点?(如果我在激活状态之前这样做会更好。)

1 个答案:

答案 0 :(得分:0)

这是不可能的。点击此处了解更多信息:

Accessing parameters in custom data

  

如何动态设置这些数据有 NO 方式。例如。基于$stateParams。这些设置预计将在.config()阶段定义,而不是在.run() 中进行评估(在与其他人的比较中,例如resolve,templateUrl ...)

data : {}用作静态设置,在配置阶段定义。

要走的路是使用 resolve : {}

Resolve

  

您可以使用resolve为控制器提供自定义状态的内容或数据。 resolve是一个可选的依赖关系图,应该注入控制器。