假设我有Person
模型
App.Person = DS.Model.extend
firstName: DS.attr 'string'
lastName: DS.attr 'string'
我有一条显示所有人的路线
App.Router.map ->
@route 'people'
App.PeopleRoute = Ember.Route.extend
model: ->
@store.find('person')
App.PeopleController = Ember.ArrayController.extend
# This doesn't work
fullName: (->
@get('firstName')
).property('firstName')
如何为数组中的每个人在fullName
中定义ArrayController
计算属性,这样我可以做这样的事情?
{{#each}}
{{fullName}}
{{/each}}
答案 0 :(得分:0)
fullNames: (->
@getEach('firstName')
).property('@each.firstName')
{{#each name in fullNames}}
{{name}}
{{/each}}
答案 1 :(得分:0)
数组控制器管理对象数组,您可以定义itemController
以在每个项目中使用其他方法。像这样:
App.PeopleController = Ember.ArrayController.extend
itemController: 'person'
App.PersonController = Ember.ObjectController.extend
fullName: (->
@get('firstName')
).property('firstName')
答案 2 :(得分:0)
除了另外两个答案之外,自从提出问题后我也找到了第三个解决方案。
我们可以在模型本身上放置计算属性,这允许我们在应用程序的任何地方调用该方法。
App.Person = DS.Model.extend
firstName: DS.attr 'string'
lastName: DS.attr 'string'
email: DS.attr 'string'
fullName: (->
"#{@get('firstName')} #{@get('lastName')}"
).property('firstName', 'lastName')