0

ドキュメントに従って、coffeescriptに残り火オブジェクトがある場合

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')すると、フルネームの代わりに残り火オブジェクトが返されます

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]
4

1 に答える 1

1

Coffeescriptを指すと、ヒントが得られました。fullNameを次のように定義してみてください。

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

あなたの例では、返される値は関数自体であり、値ではないと思います。

編集

私はあなたのコードをjavascriptで翻訳しようとしました:http://tinyurl.com/9mh2eho

次に、jsfiddleに貼り付けます。

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

どちらのバージョンも機能しているようです...おそらく間違いはどこかにあります。

于 2012-08-19T19:31:12.943 に答える