Angular:嵌套状态在 UI-路由器中不起作用
Angular: Nested state not working in UI-Router
多级嵌套在 ui-router 中不起作用。我在名为 "tpl.hello.html" 的模板中添加了 "ui-view",这是状态 "home.hello" 的模板。此 "home.hello" 状态是 "home" 状态的子状态。之后,我在 stateprovider 中添加了以下状态:
.state('home.hello.test', {
url: '/test',
templateUrl: 'tpl.hellonested.html'
})
但是这个 "home.hello.test" 状态不会在 "home.hello" 状态中加载。
这里是plunkr 看看。
我认为您对 ui-router 中嵌套的想法是错误的。
子状态加载父状态,而不是相反。
在您自己的 plunkr 中,如果单击 link 测试,您可以看到父状态 (home.hello) 已加载到子状态 (home.hello.test) 中。
<div ui-view></div>
只是定义了子视图在父视图中的位置。如果将它放在父视图的顶部,则子视图将加载在父视图的顶部,如果将其放置在底部,则子视图将加载在底部。
这方面有很好的文档link
希望对您有所帮助。
我没有发现任何问题,根据你的 plunkr,你的路线是
-Home
*Home.Home1
>Home.Home1.Test
*Home.Home2
因此,如果您转到 "Home.Home1",它将 NOT 加载"Home.Home1.Test",
但是如果你加载 "Home.Home1.Test",它也会加载它的所有父状态。这是一个plunkr(只是稍微修改了一下)。
多级嵌套在 ui-router 中不起作用。我在名为 "tpl.hello.html" 的模板中添加了 "ui-view",这是状态 "home.hello" 的模板。此 "home.hello" 状态是 "home" 状态的子状态。之后,我在 stateprovider 中添加了以下状态:
.state('home.hello.test', {
url: '/test',
templateUrl: 'tpl.hellonested.html'
})
但是这个 "home.hello.test" 状态不会在 "home.hello" 状态中加载。
这里是plunkr 看看。
我认为您对 ui-router 中嵌套的想法是错误的。 子状态加载父状态,而不是相反。
在您自己的 plunkr 中,如果单击 link 测试,您可以看到父状态 (home.hello) 已加载到子状态 (home.hello.test) 中。
<div ui-view></div>
只是定义了子视图在父视图中的位置。如果将它放在父视图的顶部,则子视图将加载在父视图的顶部,如果将其放置在底部,则子视图将加载在底部。
这方面有很好的文档link
希望对您有所帮助。
我没有发现任何问题,根据你的 plunkr,你的路线是
-Home
*Home.Home1
>Home.Home1.Test
*Home.Home2
因此,如果您转到 "Home.Home1",它将 NOT 加载"Home.Home1.Test", 但是如果你加载 "Home.Home1.Test",它也会加载它的所有父状态。这是一个plunkr(只是稍微修改了一下)。