Ember.js 应该在模型或控制器中声明计算属性吗?
具有以下用户模型:Ember.js 应该在模型或控制器中声明计算属性吗?,ember.js,ember-data,Ember.js,Ember Data,具有以下用户模型: Sks.User = DS.Model.extend firstName: DS.attr("string") lastName: DS.attr("string") “fullName”计算属性应在何处声明 fullName: Ember.computed(-> firstName = @get("firstName") lastName = @get("lastName") firstName = "" if firstNam
Sks.User = DS.Model.extend
firstName: DS.attr("string")
lastName: DS.attr("string")
“fullName”计算属性应在何处声明
fullName: Ember.computed(->
firstName = @get("firstName")
lastName = @get("lastName")
firstName = "" if firstName is `undefined`
lastName = "" if lastName is `undefined`
lastName + " " + firstName
).property("firstName", "lastName")
它应该在“UsersController”中还是直接在模型中?Ember文档说,仅在会话中使用的字段应该写入控制器中。但问题是我无法访问索引模板中的“全名”:
Sks.IndexController = Ember.Controller.extend
needs: ['users']
此处“fullName”不可访问(在控制器中声明)
{{{#controllers.users}中的每个用户
{{user.fullName}
{{/每个}}
但是它是在模型中的时候。在这种情况下,我认为模型是计算属性的正确位置,因为只有当您具有firstname和lastname属性时,它才有意义 在有意义的情况下,您仍然可以将计算属性放在控制器上,但我认为像“fullName”这样的属性可以在应用程序的多个位置使用(在控制器中使用它会迫使您在应用程序的不同部分重复工作)
{{#each user in controllers.users}}
<li>{{user.fullName}}</li>
{{/each}}