2013-03-25 71 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

相关问题