Javascript 为什么余烬模型的命名与其他模型不同?
在Ember中,所有内容都以其类型作为名称的一部分进行注册。i、 e: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
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还是其他)并使用您自己的命名约定将导致大量额外工作。除非你们有足够的钱去烧钱或者有一个很好的理由,否则我会建议你们违约