答案 0 :(得分:2)
您必须在app.js文件中使用 app.run(),并在 $ rootScope.title 中指定您的标题。你可以按照这个代码
app.run(function($rootScope){
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState){
$rootScope.title=toState.data.title;
});
});
然后在你的html中绑定变量,就像这样
<title ng-bind="title"></title>
我认为这会有所帮助
答案 1 :(得分:0)
我会说,你几乎就在那里。标题可能如下所示:
<title>{{$state.current.data.title}} {{$stateParams.ID}}</title>
让我们有这两种状态:
.state('parent', {
url: "/parent",
templateUrl: 'tpl.html',
data : { title: 'Title for PARENT' },
})
.state('parent.child', {
url: "/child/:ID",
templateUrl: 'tpl.html',
controller: 'ChildCtrl',
data : { title: 'Title for CHILD' },
})
;
并像这样打电话给他们:
<a ui-sref="parent">
<a ui-sref="parent.child({ID:1})">
<a ui-sref="parent.child({ID:2})">
有了这个钩子:
.run(['$rootScope', '$state', '$stateParams',
function ($rootScope, $state, $stateParams) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
}])
所以,关键是,$rootScope
我们可以同时访问 $state.current
和 $stateParams
检查here (注意,要在分隔窗口中查看plunker,请单击右上角蓝色图标 - 新窗口也会更改标题)
答案 2 :(得分:0)
我建议您使用params选项而不是使用data
选项,因为params可以是可选的,您可以通过在$state.go
或{{1}内传递参数来动态设置它指令。
<强>代码强>
ui-sref
来自控制器
.state('projects', {
url: '/',
templateUrl: 'projects/projects.html',
ncyBreadcrumb: {
label: 'Projects'
},
params: {
title: { value: null }
}
});
来自HTML
$state.go('projects', {title: 'Page1'}); //you can change title while calling state