您好,我在使用 ui-router 时尝试访问 Controller “ViewWorklogCrtl”中的参数,但遇到了困难。
基本上,我的父模板包含:
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 链接传递到 ViewWorkLogCtrl 以及在 ViewWorkLogCtrl 中传递的“testnum”...更好的方法吗?
非常感谢!!!
最佳答案
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) 来自父级的 instanceID 2) 来自当前的 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)
...
关于javascript - Angular ui-router - 如何访问从父模板传递的嵌套命名 View 中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097820/