2017-04-08 65 views
3

有什麼區別下面兩個條件this.set('firstName','ember')和Ember.set(this,'firstName','ember')是否有區別this.set和Ember.set

+0

看看:http://stackoverflow.com/questions/43285202/what-is-the-difference-between-setthis-agentname- john-and-this-setagen – ykaragol

+3

[Ember中的set(this,'agentName','John')和this.set('agentName','John')有什麼區別?](http:/ /stackoverflow.com/questions/43285202/what-is-the-difference-between-setthis-agentname-john-and-this-setagen) – Lux

回答

1

Ember的計算屬性鏈和觀察者依賴於您在所討論的對象上調用對象 .set()。如果您忘記了,您經常會看到這種效果的警告。

但是,可能會出現這樣的情況,您可能不知道您傳遞的對象是Ember.Object還是隻是一個普通的JavaScript對象。這就是Ember.set()派上用場 - 它適用於兩種類型的物體。

const setFoo(target, value) { 
    Ember.set(target, 'foo', value); 
} 

const a = {foo:null}; 
const b = Ember.Object.create({foo:null}); 

// both calls are valid because we use Ember.set() 
setFoo(a, 'johnny'); 
setFoo(b, 'bravo'); 

下面是官方documation那還挺有幫助的:Ember.set()

相關問題