javascript - Angular ui-router - 如何访问从父模板传递的嵌套命名 View 中的参数?

标签 javascript angularjs nested angular-ui-router

您好,我在使用 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/

相关文章:

javascript - 为什么此图表 d3.js 不能与 require.js 一起使用?

javascript - 使用ajax提交表单但得到 "Illegal Invocation"

javascript - 按键对 Chartjs 条形图的对象进行分组

twitter-bootstrap - 使用 ng-repeat 创建 "grid"布局

amazon-web-services - AWS cloudformation 将值传递给嵌套堆栈

html - 在 div 中创建表单并尝试将内容保留在其中

javascript - 如何从表示嵌套树的物化路径数组遍历并渲染嵌套 HTML?

javascript - 在 es6 中使用解构 switch 语句

javascript - 在 Google map 上看不到标记

javascript - AngularJs 范围变量不起作用