2015-12-03 73 views
0

我有一個父視圖和許多子視圖。是否可以爲這個孩子的某個狀態指定狀態,但是沒有在狀態中指定當前的孩子名稱以及如何?在ui路由器中指定沒有當前子路由的當前的孫子路由

所以,在我的配置我想有這樣的事情:

.state("parent", { 
    url: "" // Resulting url is/
}) 
.state("parent.child", { 
    url: /ChildUrl // Resulting url is /ChildUrl/ 
}) 
.state("parent.{some param}.grandchild", { 
    url: "" // Resulting url is /ChildUrl/ 
}) 

或如何更改爲另一個子視圖沒有在瀏覽器更改URL沒有孫子的解決方案?

回答

0

所以援引狀態的變化,終於在國家配置中刪除url參數可能表示父視圖和子視圖解決了它作爲grandchild。它的工作方式,我需要

0

在父模板中使用。

<div class="parentTemplate"> 
    <h1>Parent Title</h1> 
    <ui-view></ui-view> 
</div> 

child1模板:

<div class="child1Template"> 
    <h1>Child1 Title</h1> 
</div> 

的child2模板:

<div class="child2Template"> 
    <h1>Child2 Title</h1> 
</div> 

狀態配置:

.state("parent", { 
    url: "", 
    templateUrl: "templates/parent-template.html" 
}) 
.state("parent.child1", { 
    templateUrl: "templates/child1-template.html" 
}) 
.state("parent.child2", { 
    templateUrl: "templates/child2-template.html", 
    params: { 'child2Param': 'Default' } 
}) 

要parent.child1或parent.child2將在/然而<ui-view>指令將填充適當的子模板。你不需要一個URL來在狀態之間導航。使用導航將$ state注入控制器並使用$state.go('parent.child1')。如果你需要傳遞的參數在每個州params屬性定義它們與$state.go('parent.child2', {'child2Param', someObject.withDynamicValue }.

+0

問題是,我需要更改一個孩子的網址,但不要與另一個孩子更改與保持前一個孩子的網址。這就是爲什麼我在想偉大的孩子,但我不知道如何正確地指定它。而且我也使用'$ state.go' – Andrew

+0

如果您將url添加到一個狀態而不是另一個狀態,它不起作用嗎?它將進入狀態,然後相應地更改window.location。或者,轉到url並相應地加載子狀態。 –

+0

感謝您的回答,我解決了我的問題。我已經發布了一個答案 – Andrew

相關問題