wry*_*ych 5 ember.js ember-data
拥有以下用户模型:
Sks.User = DS.Model.extend
firstName: DS.attr("string")
lastName: DS.attr("string")
Run Code Online (Sandbox Code Playgroud)
应该在哪里声明'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")
Run Code Online (Sandbox Code Playgroud)
它应该在'UsersController'中还是直接在模型中?Ember文档说只在会话中使用的字段应该写在控制器中.但问题是我无法访问索引模板中的'fullName':
Sks.IndexController = Ember.Controller.extend
needs: ['users']
Run Code Online (Sandbox Code Playgroud)
在这里,'fullName'无法访问(在控制器中声明)
{{#each user in controllers.users}}
<li>{{user.fullName}}</li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
但它是在模型中的时候.
在这种情况下,我认为模型是计算属性的正确位置,因为只有拥有firstname和lastname属性才有意义.
你仍然可以在有意义的时候在控制器上放置计算属性,但我想像"fullName"这样的属性可以在你的应用程序中的多个地方使用(并且在控制器中使用它会迫使你在不同的地方复制工作量)应用程序的一部分)
| 归档时间: |
|
| 查看次数: |
2578 次 |
| 最近记录: |