计算属性在EmberJS中无法正确显示,显示[object Object]

时间:2012-08-19 18:45:34

标签: ember.js towerjs

如果我按照文档

在coffeescript中有一个ember对象
Person = Ember.Object.extend
  name: null
  lastName: null
  fullName: Ember.computed ->
    return 'hello'
  .property('name', 'lastName')

person = Person.create
  name: 'Tom'
  lastName: 'Tim'

使用person.get('fullName')返回一个ember对象而不是fullname

m =>
    _cacheable: true
    _dependentKeys: Array[1]
    0: "ownerships"
    length: 1
    __proto__: Array[0]
    func: function () {
    __proto__: Ember.Descriptor

因此(我假设),我看到[object Object]而不是fullName

<script type="text/x-handlebars" data-template-name="personView">
{{#with App.peopleController.person}}
  <dt>First name</dt>
  <dd>{{name}}</dd>
  <dt>Fullname</dt>
  <dd>{{fullName}}</dd>
{{/with}}
</script>

这呈现:

First name
[object Object]

1 个答案:

答案 0 :(得分:1)

指向coffeescript给了我一个提示:尝试像这样定义fullName:

fullName: (->
   return "hello"
).property('firstName', 'lastName')

我认为在您的示例中,返回的值是函数本身,而不是值。

修改

我尝试使用以下代码在javascript中翻译您的代码:http://tinyurl.com/9mh2eho

然后,粘贴一个jsfiddle:

http://jsfiddle.net/Sly7/ksRkd/

这两个版本似乎都有效......也许错误在其他地方。