【发布时间】:2023-03-14 10:45:01
【问题描述】:
我正在按照 here 的建议在状态对象中定义页面标题。
$stateProvider
.state('project', {
url: '/projects/:origin/:owner/:name',
template: ' ',
data : { pageTitle: 'Project page title'},
});
所以我以后可以通过这种方式访问它:
$state.current.data.pageTitle
现在...我想做的是,与其将 pageTitle 设为固定值,不如访问 stateParams 之一。
注意 ,下面的例子不工作,这是我希望它工作的方式。
$stateProvider
.state('project', {
url: '/projects/:origin/:owner/:name',
template: ' ',
data : { pageTitle: $stateParams.name},
});
我也可以使用 resolve 属性:
resolve: { title: '项目页面标题' },
对于 stateParams 值,我可以这样做:
resolve:{
pageTitle: ['$stateParams', function($stateParams){
return $stateParams.name;
}]
}
然后是 console.log($state.current.resolve.pageTitle);在我的控制器中将返回整个函数而不是结果。
这样做的正确方法是什么?
更新:
我没有提到的是我在 ES6 中使用了 angularJs,并且我使用了模块化架构。 因此,每个组件都有自己的范围。
您可以查看我之前的 post ,以更好地了解我正在使用的模块化架构。
我正在构建一个获取父状态的面包屑(使用定义的 pageTitle)。 因此在每个模块中定义页面标题名称将是完美的。
所以我可以决定页面标题是固定值“我的页面标题”还是 stateParams 值。
也许这是完全错误的,不应该那样做。如果是这样,请告诉我。
-
您可能需要调用该函数吗?像 console.log($state.current.resolve.pageTitle());
-
不,这不起作用:( .