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}}