Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angularjs嵌套状态:3级大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用Agnularjs和Ionic框架。我想实现一个嵌套的状态,看起来像下面,

>事件菜单(root)
>首页(2级)
>首页1(3级)
>首页2
>签到
>参加者

我的路由文件看起来像,

angular.module('ionicApp',['ionic'])

.config(function($stateProvider,$urlRouterProvider) {

  $stateProvider
    .state('eventmenu',{
      url: "/event",abstract: true,templateUrl: "event-menu.html"
    })
    .state('eventmenu.home',{
      url: "/home",views: {
        'menuContent' :{
          templateUrl: "home.html"
        }
      }
    })
      .state('eventmenu.home.home1',{
      url: "/home1",views: {
        'menuContent' :{
          templateUrl: "home1.html"
        }
      }
    })
        .state('eventmenu.home.home2',{
      url: "/home2",views: {
        'menuContent' :{
          templateUrl: "home2.html"
        }
      }
    })
    .state('eventmenu.checkin',{
      url: "/check-in",views: {
        'menuContent' :{
          templateUrl: "check-in.html",controller: "checkinCtrl"
        }
      }
    })
    .state('eventmenu.attendees',{
      url: "/attendees",views: {
        'menuContent' :{
          templateUrl: "attendees.html",controller: "AttendeesCtrl"
        }
      }
    })

  $urlRouterProvider.otherwise("/event/home");
})

完整的例子,请参见codepen:http://codepen.io/liamqma/pen/mtBne

/event/home
/event/checkin

都在工作,但是

/event/home/home1
/event/home/home2

不工作。

任何帮助是极大的赞赏。谢谢!

@H_404_27@ 我解决你的问题: http://codepen.io/yrezgui/pen/mycxB

基本上,Ionic正在使用Angular-UI-Router,它有一个巨大的API。在你的情况下,你需要检查这个链接,以了解:https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views#view-names—relative-vs-absolute-names

简而言之,home1和home2状态是home状态的子节点,因此它们不能访问menuContent视图,因为它与eventmenu状态相关。

所以你需要写:

.state('eventmenu.home.home2',{
  url: "/home2",views: {
    'menuContent@eventmenu' :{
      templateUrl: "home2.html"
    }
  }
})

代替 :

.state('eventmenu.home.home2',views: {
    'menuContent' :{
      templateUrl: "home2.html"
    }
  }
})

和home1不工作,即使这个修改后,因为其url是:

url: "/home/home1",

代替 :

url: "/home1",

通过编写eventmenu.home.home1,你使home1的家的孩子,所以它的url需要是相对的,而不是绝对的。

希望你明白它,并与离子乐趣;)

大佬总结

以上是大佬教程为你收集整理的Angularjs嵌套状态:3级全部内容,希望文章能够帮你解决Angularjs嵌套状态:3级所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。