[英]Angular UI-Router - Component - Parent - Child - Nested - View not load
[英]Angular ui-router - how to access parameters in nested, named view, passed from the parent template?
嗨我正在嘗試訪問控制器“ViewWorklogCrtl”中的參數,同時使用ui-router並遇到困難。
基本上,我的父模板包含:
a(ui-sref="instance-ticket.worklog({id:{{ticket.testnum}}})") show
然后進一步向下:
section(ui-view="top-section")
然后在我的app.js中,包含客戶端路由信息,我有:
$stateProvider
.state('instance-ticket', {
url: '/ticket/:instanceID',
templateUrl: 'partials/instance-ticket',
controller: 'ViewTicketCrtl'
})
.state('instance-ticket.worklog', {
views:{
'top-section':{
templateUrl:'/partials/ticket.worklog.jade',
controller: 'ViewWorklogCrtl'
}
}
})
模板加載工作正常,我無法找到答案的問題和問題是 - 如何通過ui-sref鏈接訪問“testnum”,以及ViewWorkLogCtrl內部...是否有更好的方法這個?
非常感謝!!!
instanceID
被聲明為參數,因此我們可以像這樣訪問它
.controller('ViewWorklogCrtl',
[ '$scope','$stateParams'
function($scope , $stateParams ) {
//
$scope.instanceID = $stateParams.instanceID;
...
所有其他細節可以在這里找到https://github.com/angular-ui/ui-router/wiki/URL-Routing
對ui-sref
的調用應該是這樣的
<a ui-sref="instance-ticket.worklog({ instanceID:ticket.testnum })" >..
延伸:
如果我們想獲得兩個參數,1)來自父2)的instanceID來自當前的testnum,我們必須像這樣調整狀態定義
.state('instance-ticket', {
url: '/ticket/:instanceID', // instanceID
templateUrl: 'partials/instance-ticket',
controller: 'ViewTicketCrtl'
})
.state('instance-ticket.worklog', {
// new param defintion
url: '/worklog/:testnum', // testnum
views:{
'top-section':{
templateUrl:'/partials/ticket.worklog.jade',
controller: 'ViewWorklogCrtl'
}
}
和ui-sref
<a ui-sref="instance-ticket.worklog({ instanceID:1, ticket.testnum:2 })" >..
我們可以像這樣訪問它:
.controller('ViewWorklogCrtl',
[ '$scope','$stateParams'
function($scope , $stateParams ) {
//
console.log($stateParams.instanceID)
console.log($stateParams.testnum)
...
我已經編寫了一個自定義指令來解決這個問題。
<a my-sref="{{myStateVar}}">awesome link</a>
你可以從Github克隆它: https : //github.com/JensEger/Angular-Directives/tree/master/ui-router-helper
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.