AngularJs - ui-router 嵌套视图不工作

AngularJs - ui-router nested view not working

我无法显示嵌套视图

1.基本应用程序

"name": "app",
"abstract": true,
"url": "",
"views": {
  "root": {
    "templateUrl": "layout.html",
    "controller": "",
    "controllerAs" : ""
  },
  "header@app": {"templateUrl": ""},
  "nav@app": {"templateUrl": ""},

索引页显示:

<div ui-view="root"></div>

布局页面显示:

<div ui-view="header"></div>
<div ui-view="nav"></div> 
<div ui-view="content"></div>

2。内容状态示例

"name": "app.content",
"url": "/content",
"views": {
  "content@app": {
    "templateUrl": "sample1.html",
    "controller": "",
    "controllerAs" : ""
  }
}

3。另一个内容状态示例

"name": "app.content.inbox",
"url": "/inbox",
"views": {
  "content@app": {
    "templateUrl": "sample2.html",
    "controller": "",
    "controllerAs": ""
  }
}

到目前为止一切正常

Sample2.html 有一个嵌套视图,该页面的 html 如下所示:

<div ui-view="folder"></div>

状态是这样的:

"name": "app.content.inbox.folder",
"url": "/inbox/:folder",
"views": {
  "folder@app.content": {
    "templateUrl": "folder.html",
    "controller": "",
    "controllerAs": ""
  }
}

我没有得到 folder.html 嵌套视图。谁能看到我的错误?

状态应该是这样的(我评论了原来不正确的地方,修改在下面):

"name": "app.content.inbox.folder",
//"url": "/inbox/:folder",
"url": "/:folder",
"views": {
  //"folder@app.content": {
  "folder@app.content.inbox": {
    "templateUrl": "folder.html",
    "controller": "",
    "controllerAs": ""
  }
}

事实上,如果视图以其父视图的命名视图为目标,即使这样也行得通

"views": {
  //"folder@app.content": {
  // "folder@app.content.inbox": { // correct but redundant
  "folder": {                    // that is enough, parent will be searched by default