2014-04-02 84 views
0

使用扁平路由(如果必須在單獨的視圖中顯示視圖)結構解決了許多問題並有助於避免不必要的代碼,但是根模板中的所有模板DIR比亂七八糟更多:Ember.js扁平路由結構與根模板中的混亂dir

例如:

(使用餘燼-導軌)

AddressBook.Router.map() -> 
    @resource 'contacts' 
    @resource 'contact', path: '/contacts/:contact_id' 
    @resource 'contactNew', path: '/contacts/new' 
    @resource 'contactEdit', path: '/contacts/:contact_id/edit' 

爲如上所定義的路由的所有模板必須是在根目錄下。有了更多的路線,維護它不僅僅是一個問題。

是否可以保持模板的順序?或者,當涉及Ember路由器時可能會發生變化?

回答

1

我假設你正在使用某種Handlebars預編譯器,它從路徑中獲取模板名稱。 (我從來沒有使用rails,所以我不知道它是否嵌入到Ember-rails中。)如果是這樣的話,我認爲你有兩種選擇。

  1. 您可以嘗試修改/配置預編譯器,以便從路徑以外的其他位置獲取模板名稱。我不知道你在使用哪一個,所以我不能給你提供細節。

  2. 您可以更改路線呈現的模板。您可以使用Routerender方法,或者您可以定義該路線的視圖並更改layoutName屬性。

就我個人而言,我會強烈建議您利用嵌套路線,因爲它們除了模板組織之外還提供許多其他優點。但是,如果你真的不想要,請在你的預編譯器上查找文檔並嘗試選項編號1.你可能會想出一些巧妙的東西。

編輯:使用Ember-Rails,選項1可能是最好的。我對Ruby一無所知,但我很確定你需要的全部是template.rb

+0

是的,我們使用來自'ember-rails' gem的預編譯器。但是對於嵌套路線,你看過這篇文章:http://hashrocket.com/blog/posts/ember-routing-the-when-and-why-of-nesting? – wryrych

+0

他並不是說平坦路線更好,而是說他們更適合某些情況。但Ember建立在層次結構之上;模板,路由,控制器,視圖等等。自寫了這篇文章以來,出現了很多錯誤修正和許多新特性,以消除嵌套對象中的樣板。我認爲可以肯定地說,在大多數情況下,你實際上會寫出更多的代碼和樣板,並且具有扁平的結構。 – GJK

+0

你可以給一些文章/職位的鏈接描述更新路由器/路由在Ember多少代碼和樣板我可以避免不使用扁平結構? – wryrych