2013-03-12 71 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