我在建議here的狀態對象中定義頁面標題。AngularJs:將stateParams值附加到狀態對象中的自定義數據
$stateProvider
.state('project', {
url: '/projects/:origin/:owner/:name',
template: '<project></project>',
data : { pageTitle: 'Project page title'},
});
這樣我就可以訪問它以後是這樣的:
$state.current.data.pageTitle
現在...我想要做的是,而不是一個固定值PAGETITLE我想訪問一個stateParams。
小心,下面的例子是不工作,這是我喜歡它的工作方式。
$stateProvider
.state('project', {
url: '/projects/:origin/:owner/:name',
template: '<project></project>',
data : { pageTitle: $stateParams.name},
});
我還可以使用屬性決心:
決心是:{title: '工程頁面的標題'},
對於stateParams值我能做到這一點:
resolve:{
pageTitle: ['$stateParams', function($stateParams){
return $stateParams.name;
}]
}
但是然後console.log($ state.current.resolve.pageTitle);在我的控制器將返回整個功能,而不是結果。
什麼是正確的方法來做到這一點?
UPDATE:
,我沒有提到的事情是,我用ES6 angularJs和我使用一個模塊化的架構。 因此,每個組件都有其自己的範圍。
您可以查看我之前的post,以更好地瞭解我正在使用的模塊化體系結構。
我正在構建抓取父狀態的breadcrumb(使用定義的pageTitle)。 因此,在每個模塊中定義頁面標題名稱是完美的。
所以我可以決定,如果頁面標題將是一個固定值「我的頁面標題」或stateParams值。
也許這是完全錯誤的,這不應該這樣做。讓我知道如果是這樣的話。
可能是你需要調用該功能嗎?像console.log($ state.current.resolve.pageTitle()); –
沒有這不工作:(。 – Brieuc