Ember:在解决承诺上设置属性

时间:2015-07-09 15:19:25

标签: ember.js

我刚刚将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()

1 个答案:

答案 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(){ [...] });

我真的很惊讶,因为争论似乎无处不在。可能有一种更清洁的方法。