[英]Angular UI-Router: $state.current is sometimes undefined
[英]Can't access $state.current.data in angular ui-router as per documentation
我正在嘗試動態更新頁面標題。
考慮這樣定義的狀態:
$stateProvider.state('login', {
url: '/login',
templateUrl: '/templates/views/login.html',
controller: 'AuthCtrl',
data: {title: 'Log in'}
}
在頁面 HEAD 部分:
<title page-title></title>
app.directive("pageTitle", function ($state) {
return {
restrict: 'A',
template: "{{title}}",
scope: {},
link: function (scope, elem, attr) {
scope.title=$state.current.data.title; //wrap this in $watch
console.log('page state',$state.current.data.title);
}
}
});
但這會返回undefined
。 有任何想法嗎? 謝謝!
該變量確實可用於頁面,但在您的指令中,您創建了一個隔離的 scope 。 每當您在指令上使用scope: {}
選項時,它都會創建一個僅限於該指令的范圍。
您有兩個選項可以幫助解決此問題。
scope:{}
選項的指令,這將允許指令完全訪問存在於父頁面上的scope
。 這里的缺點是這將指令的使用限制為每個范圍的單個實例。指令: scope: {title: '=title'}
HTML: <title><page-title title="{{$state.current.data.title}}"></page-title></title>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.