如何将site_id参数从数据传递给pageTitle?
.state('site', {
url: "/site/:site_id",
templateUrl: "views/site_detail.html",
data: {pageTitle: 'Site :' + $scope.$state.params.site_id},
controller: "SiteDetailController"
})
答案 0 :(得分:0)
在这种情况下,您可以使用resolve
:
.state('site', {
url: '/site/:site_id',
templateUrl: 'views/site_detail.html',
controller: 'SiteDetailController',
resolve: {
pageTitle: function($stateParams) {
return $stateParams.site_id;
}
}
);
然后,您的控制器将如下所示:
app.controller('SiteDetailController', function($scope, pageTitle) {
console.log('pageTitle = ' + pageTitle);
});
如果您计划在完成状态更改之前根据参数检索或处理数据,则Resolve非常有用。如果您只对参数值感兴趣,那么您可以在控制器中使用$stateParams
:
app.controller('SiteDetailController', function($scope, $stateParams) {
console.log('pageTitle = ' + $stateParams.site_id);
});
更新:Here is a CodePen with an example using both $stateParams
and resolve
.