TypeError:Object#<object>没有方法'set'</object>

时间:2013-03-25 15:02:02

标签: ember.js

完成某个过程后,我需要将布尔值设置为true才能更新模板。

我可以轻松获取对象,但设置属性似乎更难。我用来获取对象的是

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

如果我在chrome控制台中这样做,我可以清楚地看到我得到了一个ember对象:

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);

我确实收到标题中提到的错误。我尝试了尽可能多的不同口味,但都有相同的结果。

有人可以对此发光吗?

1 个答案:

答案 0 :(得分: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来激活。