Javascript 为什么余烬模型的命名与其他模型不同?

Javascript 为什么余烬模型的命名与其他模型不同?,javascript,ember.js,naming-conventions,ember-data,Javascript,Ember.js,Naming Conventions,Ember Data,在Ember中,所有内容都以其类型作为名称的一部分进行注册。i、 e: App.FoobarController App.FoobarView App.FoobarRoute 除了余烬数据模型,它们都只是通过根名称调用。i、 e App.User App.Post App.Comment 为什么余烬数据模型打破了这种模式,而不是分别被称为App.UserModel,App.PostModel,App.CommentModel 我意识到我可以随意命名我的模型,但如果我继续命名我的用户模型App

在Ember中,所有内容都以其类型作为名称的一部分进行注册。i、 e:

App.FoobarController
App.FoobarView
App.FoobarRoute
除了余烬数据模型,它们都只是通过根名称调用。i、 e

App.User
App.Post
App.Comment
为什么余烬数据模型打破了这种模式,而不是分别被称为
App.UserModel
App.PostModel
App.CommentModel

我意识到我可以随意命名我的模型,但如果我继续命名我的用户模型
App.UserModel
,那么我的所有AJAX请求都会发送到
/user\u models
,并期望响应JSON带有
user\u model
/
user\u models
。我还认识到,注册别名/复数可以使这种模式成为可能

但是,我可以做一些事情,比如
controllerName:'Foobar'
templateName:'Foobar'
,然后Ember自动将它们分别解析为
FoobarController
foobertemplate
。我还可以定义
App.FoobarView
App.FoobarController
,余烬知道它们会一起自动配对。这就是说,对于将
UserModel
的AJAX请求重写为
/users
,并通过
App.store.find('User',123)
启用抓取,我希望同样的魔法也会发生

在处理模型时是否有违反此约定的原因,或者这只是一个疏忽/错误/与余烬数据不一致

在处理模型时是否有违反此约定的原因,或者这只是一个疏忽/错误/与余烬数据不一致

我认为,与其说公约被打破了,不如说它与你所期望的有所不同。在许多方面,ember是在rails和其他MVC框架使用的约定的基础上构建的。通常,MVC应用程序是围绕一组表示域模型的对象构建的。例如:

User, Post, Comment, etc.
现在,对于每个模型,可能需要其他特定于框架的对象,如:

UserController, UserView, UserPresenter, UserMailer, UserTemplate, UserView
所以遵循这个约定用户模型是没有意义的。我可以看到一个论点,
UserModel
会更清楚,但会建议你选择战斗。尝试对抗框架(无论是ember、rails还是其他)并使用您自己的命名约定将导致大量额外工作。除非你们有足够的钱去烧钱或者有一个很好的理由,否则我会建议你们违约