簡體   English   中英

Angular ui-router - 如何訪問從父模板傳遞的嵌套命名視圖中的參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM