2016-06-30 8 views
-1

次の計算されたプロパティがあるとします。EmberJSトリガ計算プロパティ

someCP: function() { 

}.property(obj.innerObj.attr) 

私の質問は、obj.innerObjに 'attr'が定義されていなくてもトリガーされますか?

このCPはどのように機能しますか?

someCP: function() { 

}.property('obj.innerObj.attr') 

また、このコードはに書き直される:

someCP: Ember.computed('obj.innerObj.attr', function() { 

}) 

まずフォームが動作するようにguarantiedされていない

+1

計算されたプロパティの従属キーは文字列ではありません。 「トリガーされた」とはどういう意味ですか? 'attr'は存在しないため、更新されないため、キャッシュは無効になりません。 – locks

+0

あなたはそれを試して何が起こったのですか? –

答えて

0

まず、すでにコメントで述べたように、依存キーは文字列でなければなりません。

"トリガリング"に関して、Emberは、それがキャッシュされ、従属プロパティが変更されたときに再計算するよりも、最初の時間に使用されたときにプロパティを計算する必要があります。あなたの場合は決してありません。しかし、私は実際にどのように動作するのかは分かりませんが、理論的にはこのように動作するはずです。

+0

なぜあなたは最初のフォームが動作することを保証されていないと思いますか? – testndtv

+0

@testndtv設定によって無効にすることができます。あなたがコードベースと環境全体を制御しているなら、それは重要ではありません。あなたは[ここ](http://emberjs.com/api/classes/Ember.computed.html)と[ここ](https://guides.emberjs.com/v2.6.0/configuring-ember/)の説明を見つけることができます。 disabling-prototype-extensions /) –

関連する問題