我刚刚将ember从1.11.1升级到1.13.2,并将ember-data升级到1.13.4
从那时起,我无法在已解决的承诺上设置属性:
var promise = store.filter('user', {filters: {"googleId":content.id}}, function() {
return promise;
}).then(function(response) {
var user = response.get('content.0');
console.log(user); //--> A user entity (Object { type: makeCtor/Class(), id: "38", store: Object, [...])
user.set('foo', "bar"); // CRASH HERE
}, function(){ [...] });
来自控制台的错误消息没有帮助,因为我在.then()
编辑:
背景:
我在一个名为session.js
的初始化程序中。我正在尝试实现Google身份验证。这段特定的代码就是在从API中检索Google信息之后。我正在尝试查看我的后端是否存在具有此类Google ID的用户,如果是这种情况(承诺已解决),我想要使用最新的Google信息更新用户并将其保存到我的后端(因此.set()
)
答案 0 :(得分:0)
使用调试器,我想到了另一种访问有效数据的方法:
var promise = store.filter('user', {filters: {"googleId":content.id}}, function() {
return promise;
}).then(function(response) {
var user = arguments[0];
console.log(user); //--> A user entity
user.set('foo', "bar"); // OK NOW
}, function(){ [...] });
我真的很惊讶,因为争论似乎无处不在。可能有一种更清洁的方法。