我的状态配置定义如下:
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字段。 有没有办法做到这一点?(如果我在激活状态之前这样做会更好。)
答案 0 :(得分:0)
这是不可能的。点击此处了解更多信息:
如何动态设置这些数据有 NO 方式。例如。基于
$stateParams
。这些设置预计将在.config()
阶段定义,而不是在.run()
中进行评估(在与其他人的比较中,例如resolve,templateUrl ...)
data : {}
用作静态设置,在配置阶段定义。
要走的路是使用 resolve : {}
:
您可以使用resolve为控制器提供自定义状态的内容或数据。 resolve是一个可选的依赖关系图,应该注入控制器。