2013-03-12 106 views
3

我正在用軌道作爲後端(我正在使用ember-rails gem)構建一個應用程序在餘燼js和我正在努力用正確的方式來命名我的把手模板。什麼是正確的約定?例如:正確的模板名稱約定在燼js camelCase vs snake_case

我想,對於路線/user_profiles/4/我應該把我的模板放在user_profiles/show.hbs對不對?或者應該是userProfile/show.hbs

相同的一個簡單的模板,應該是user_menu.hbsuserMenu.hbs(他們都爲我工作)。然而,爲了與幫手,我需要做使它:

{{render 'userMenu' }} 

使用權我App.UserMenuController

所以我應該使用駝峯每一個地方或snake_case?或者兩者(駝峯文件夾和snake_case的文件名)

有人可以幫我瞭解它,因爲在灰燼導的大多是簡單的名字,如postscomments所以很難理解。

回答

5

我正在努力以正確的方式命名我的把手模板。什麼是正確的約定?

大多數情況下,模板名稱將與路由名稱匹配。如果路由名稱有.,則將其替換爲/,並將camelCase路由名稱替換爲under_scored模板名稱。有關更多示例,請參見the naming conventions guide

我想,對於路線/ user_profiles/4 /我應該把我的模板在user_profiles/show.hbs的權利?或者它應該是userProfile/show.hbs?

不知道你在哪裏show.hbs。由於模板是基於路線名稱(不是網址),因此無法分辨。讓我們假設你已經有了路線是這樣的:

App.Router.map(function() { 
    this.route('user_profile', { path: '/user_profiles/:user_profile_id' }); 
}); 

的路由名稱是 「user_profile」 所以Ember.js將尋找這些對象:

  • App.UserProfileRoute
  • App.UserProfileController
  • user_profile模板

或者,您可以使用路線名稱userProfile,其他一切都會保持不變。

所以我應該使用camelCase在哪裏或snake_case?或者兩者(駝峯文件夾和snake_case的文件名)

公約似乎是camelCase的一切,但模板路徑(因此模板的文件夾名/文件名)

+0

感謝了很多了相同的結論昨天抵達。 – Piotr 2013-03-13 09:27:55

+1

Thx爲這個答案。但是,您能否提供模板的完整路徑和文件名?我開始用燼,並努力與日誌消息「無法找到」enonce「模板或視圖。將不會呈現任何對象{fullName:」template:enonce「}」 – Snicolas 2013-11-09 22:02:12

+0

@Snicolas - 同樣在這裏。文檔說:「如果您使用構建工具來管理您的應用程序的資產,大多數人都會知道如何預編譯Handlebars模板並將它們提供給Ember.js。」這真的很有用。^_ ^ – Ben 2014-03-02 18:46:14