2013-03-25 99 views
1

一旦某個過程完成,我需要將布爾值設置爲true以更新模板。TypeError:Object#<Object> has no method'set'

我可以很容易地得到對象,但設置屬性似乎更困難。我用得到的對象是

var found = self.get('content').findProperty('id', self.datasetid); 

如果我這樣做,在Chrome控制檯我可以清楚地看到,我得到的灰燼對象返回:

Object {id: 1, active: true} 
__ember1364221685101_meta: Meta 
active: true 
get data_set: function() { 
id: 1 
set data_set: function (value) { 
__proto__: Object 

當我這樣做:

found.set('data_set.fully_geocoded', true); 

我確實在標題中提到了錯誤。我試過儘可能多的不同口味,但都具有相同的結果。

難道有人會對此發光嗎?

+0

您是否試過'found.get('data_set')。fully_geocoded = true;'? – Thomas 2013-03-25 15:06:55

+0

@Thomas或多或少有相同的結果,TypeError:Object#沒有方法'get'。我也相信綁定系統不會觸發,當我不在屬性上設置'設置' – Rudi 2013-03-25 15:10:34

回答

2

Object不是Ember.Object的實例,而是基類Javascript類Object,所以它不會有getset方法。

您可以通過使用Ember.getEmber.set直接,傳遞對象,因此得到很多的相同的功能:

Ember.set(found, 'data_set.fully_geocoded', true) 
Ember.get(found, 'data_set.fully_geocoded') 

計算性能和觀察員也可以發射基於使用Ember.set這種方式。

+0

這似乎只觸發觀察者......我真的很困惑。 – Nico 2013-12-01 15:11:21

相關問題