1

こんにちは、ember コードで最も奇妙な問題が発生しています。(1.0-pre4)

この一見無害なコードは、期待どおりにまったく機能しません。

a = Ember.Controller.create({ 
        hello: function(){ 
            return "hello"; 
        }.property() 
    } )

すると、 helloa.get("hello")を返す代わりに、関数が返されます!

ここにダンプがあります:

i
_cacheable: true
_dependentKeys: Array[0]
func: function (){ return "hello"; }
__proto__: Ember.Descriptor

ハンドルバー テンプレートでは、[オブジェクト オブジェクト]として表示されます。

私は決してベテランの Ember プログラマーではありません..しかし、これは以前は別の方法で動作していたと確信しています。何か変わった?

ただし、呼び出すとhelloa.hello.func()が返されることに気付きました!

これは絶対に意味がありません。何か間違ったことをしている可能性がありますか、それとも Ember に問題がありますか??

どんな助けでも大歓迎です。この質問が他の質問と似ていることは知っていますが、他の人の回答にすべての情報をまとめる方法は他にありません.

編集:問題が何であるかはわかっていると思います..「作成」関数で計算されたプロパティを指定することはできません。最初に「拡張」を試みて、また報告します!

4

1 に答える 1

3

ember 1.0.0-pre.3以降、を介して計算されたプロパティを定義することはできなくなりましObject.create()た。ほとんどの場合extend、を使用する必要がありますが、必要に応じて古い動作を使用できますcreateWithMixins()

参照:

https://github.com/emberjs/ember.js/commit/c1c720781c976f69fd4014ea50a1fee652286048

Ember.Object.createは、_superを呼び出すメソッドの定義をサポートしなくなりました

于 2013-02-07T17:16:11.193 に答える