2012-01-10 38 views
7

以前使用SproutCore 1後,我正在調查ember.js。我正在尋找一些關於如何在用戶瀏覽應用程序時從DOM中添加和刪除視圖的示例。Ember.js添加和刪除DOM中的視圖?

例如,我有一個包含一組案件的應用程序,每個案件都有一個工作流程。還有管理頁面等。

當用戶啓動應用程序時,會顯示一個類似儀表板的用戶界面。用戶可以從這裏搜索或點擊一個案例,以提出該案例。在這一點上,我要做到以下幾點:

  • 我想刪除的GUI的儀表板,我想顯示的情況下的GUI - 這是一個複雜的圖形用戶界面本身有自己的一套導航規則等
  • 此外,在用戶導航和操縱案例時,我想添加和刪除部分GUI。
  • 當用戶點擊「儀表板」鏈接時,我想要刪除當前的GUI,並重新添加儀表板。

由於這將是一個有點大的應用程序,我不確定切換isVisible參數是否足夠,或者如果需要採取其他措施以避免超載用戶的瀏覽器。

有沒有指導或示例顯示如何做到這一點?

+0

你應該看看[ember-states]的代碼(https://github.com/emberjs/ember.js/tree/master/packages/ember-states)。 – 2012-01-10 02:07:05

+1

ud3323:謝謝,我有,但這留下了兩個問題:1.如何添加和刪除childViews,以及2.在代碼中,我說MyApp.statemanager.create()?將該代碼放入Ember.Application.create({ready:function({// here})});,將該代碼加載到我的index.html中創建的視圖之前。 – 2012-01-10 08:44:50

+0

舊SC 1.x狀態圖與新的灰燼狀態之間的巨大差異之一是ViewStates。基本上它處理你的狀態圖中添加/刪除視圖。至於你的其他問題,當你調用Ember.StateManager.create應該初始化狀態圖併爲你輸入你的初始狀態。 – 2012-01-10 14:22:35

回答

9

警告:過時的ANSWER

視圖從Ember.View這意味着它得到了一些關鍵方法繼承。 append(),它附加bodyappendTo(arg)需要參數和remove()

該參數是一個jQuery樣式的選擇器,它將元素插入到DOM中。

// my view 
App.PartsView = Ember.View.extend({ 
    ... 
}); 


// create/insert my view 
App.partsView = App.PartsView.create(); 
App.partsView.appendTo('#partcontainer'); 

在我的代碼中我有一個<div id="partcontainer"></div>

// remove from DOM 
App.partsView.remove(); 

文檔對Building a View Hierarchy良好的一部分,後來這取決於你是否要做到這一切編程或不Ember.ContainerView部分。

+0

jQuery文檔提供了[可用的jQuery選擇器概述](http://api.jquery.com/category/selectors/)。 – Abdull 2013-03-23 13:14:02

+0

問題:是否應該這樣做?這似乎與Ember的常規做法有點不同。 – 2014-01-30 18:32:31

+1

好問題。我幾乎兩年前寫了這篇文章,那時呃更多的是「未完成」,而且我還沒有跟上現在發生的事情。我的答案可能已過時。 – 2014-02-04 08:53:02

相關問題