2014-09-04 54 views
0

我有一個場景是我正在創建一個應該可編輯的頁面。點擊編輯按鈕後,屬性名稱應該更改爲文本框(或日期選擇器等,具體取決於屬性的「類型」)。角ui路由器嵌套狀態,但控制器/視圖相同(無頁面轉換)

現在我想要更新網址到'/編輯',但是我實際上並不需要頁面轉換。由於控制器和視圖將保持不變,但布爾屬性editMode將設置爲true,因此輸入字段將變爲可見。

我可以在$stateProvider中爲此創建一個嵌套狀態嗎?這裏是否需要嵌套狀態?我認爲這是因爲雖然頁面轉換不是必需的,但editMode仍然是一個狀態(P.s.我喜歡根據狀態思考它的路由!)。

我該如何使用ui路由器實現這一目標?

謝謝。

測試表格的小提琴:沒有頁面轉換。只需切換表單域。

http://jsfiddle.net/s82h6kkp/

回答

0

你必須做這樣的事情:

$stateProvider 
    .state('users', { 
     url: '/users', 
     controller: 'users', 
     templateUrl: 'users/users.html' 
    }) 
    .state('users.edit', { 
     url: '/users/edit', 
     views: { 
      edit: { 
       templateUrl: 'users/edit.html' 
      } 
     } 
    }) 

不要忘記來渲染編輯視圖

<!-- users/users.html --> 
<div ui-view="edit"></div> 
+0

那東西,我不需要單獨的編輯模式視圖!看小提琴。 – Umair 2014-09-04 16:36:40

+0

你無法做到這一點。編輯模式是一種狀態。你有一個國家 - 你制定了一條路線。你制定了一條路線 - 你必須加載你的視圖(事件,如果它的一小部分像你的情況) – 2014-09-04 17:03:28

+0

不可能與我有的設置!好的,謝謝你的幫助。手動工作,然後... – Umair 2014-09-04 17:50:39