当前位置: 首页 > 面试题库 >

Angularjs嵌套状态:3级

仲学真
2023-03-14
问题内容

我正在使用Agnularjs和Ionic Framework。我正在尝试实现嵌套状态,如下所示,

  • 事件菜单(根)
  • 家(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

不工作。

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


问题答案:

我在那里解决了您的问题:http :
//codepen.io/yrezgui/pen/mycxB

基本上,Ionic使用的是具有庞大API的Angular-UI-
Router。就您而言,您需要检查以下链接以了解:https :
//github.com/angular-ui/ui-router/wiki/Multiple-Named-Views#view-names–
relative-vs-absolute-names

简而言之,home1和home2状态是家庭状态的子级,因此它们无法访问menuContent视图,因为它与eventmenu状态相关。

所以你需要写:

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

代替 :

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

而且即使经过此修改,home1也无法正常工作,因为它的网址是:

url: "/home/home1",

代替 :

url: "/home1",

通过编写 eventmenu.home.home1 ,您可以将 home1 作为 home
的子级,因此其url需要是相对的,而不是绝对的。

希望您能理解并与Ionic玩得开心;)



 类似资料:
  • 我有这门课: 并希望在“列表”状态数组中的“卡片”数组上使用setState。以前,我在子组件中使用了cards数组,但现在我将其上移到Board类。这是我以前拥有的功能。 我如何改变它,使它现在工作,卡是在另一个数组? 我无法解决它看这些帖子: ReactJS-数组中对象键的设置状态 如何编辑状态数组中的项?

  • 问题内容: 在我正在开发的一个有角度的应用程序中,我希望有一个抽象的父状态,该状态必须解析其所有子状态的某些依赖关系。具体来说,我希望所有要求经过身份验证的用户的状态都必须从某些authroot状态继承该依赖项。 我遇到了无法始终解决父依赖关系的问题。理想情况下,我想让父状态检查用户是否仍自动登录到任何子状态。在文档中,它说 子状态将从父状态继承已解析的依赖项,并可以将其覆盖。 我发现仅当我从父级

  • 问题内容: 我在应用程序中使用和嵌套状态,并且我还有一个导航栏。导航栏是手写的,用于突出显示当前状态。它是一个两级导航栏。 现在,当我进入时,说我希望同时突出显示(在1级)和(在2级)。但是,使用时,如果我处于状态,则仅突出显示该状态,而不突出显示。 有什么办法可以使该状态突出显示? 问题答案: 代替这个- 你可以这样做- 目前不起作用。这里正在进行讨论(https://github.com/an

  • 更新树结构中的嵌套组件时遇到问题。我创建了以下示例来说明这个问题:Codesandbox.io 为完整起见,这是正在嵌套的组件: 树中的节点在单击时应该是可选择的,我还希望在所有子节点中(递归地)切换所选状态。我想我可以通过将通过道具传递给孩子们来实现这一点,不幸的是,这似乎不起作用。 但是,子对象使用其旧状态重新呈现(可以理解,因为它们没有通过构造函数重新初始化)。正确的处理方法是什么? 我还尝

  • 问题内容: 对于我正在使用的插件,我必须具有如下所示的状态: 我如何在不设置其余访问权限的情况下设置hospital_id的状态? 这似乎删除了除了hospital_id之外的所有内容: 问题答案: 您有几种选择: 借助ECMA6,您可以使用对象传播建议()创建具有更新属性的对象的副本。 您可以在对象()上使用本机分配功能 或为最短的版本和原子更新: 还有一个选项是更新插件: 我建议使用第一个。

  • 对于我正在使用的插件,我必须具有如下状态: 如何在不设置其余访问权限的情况下设置hospital_id状态? 这似乎删除了一切,但hospital_id: