骨干 - 无法获取属性

时间:2016-05-20 13:19:41

标签: javascript backbone.js

我有一个执行获取的函数,它返回成功并设置数据。

但我无法弄清楚如何再次从模型中获取数据。

fetchAcceptedTerms: function () {
  var self = this;
  this.appAcceptedTerms = new T1AppAcceptedTerms();
  this.acceptedTerms = new AppAcceptedTerms();

  this.acceptedTerms.fetch({
    success: function (data) {
      console.log(data);
      if (data.meta.status === 'success') {
        self.appAcceptedTerms.set(data.data);
      }
    }
  });

  console.log(self.appAcceptedTerms);
  console.log(self.appAcceptedTerms.attributes);
},

请参阅控制台中的输出: http://s32.postimg.org/ssi3w7wed/Screen_Shot_2016_05_20_at_14_17_21.png

如你所见:

  • console.log(data);按预期返回数据
  • console.log(self.appAcceptedTerms);数据设置正确,我们可以在日志中看到它
  • console.log(self.appAcceptedTerms.attributes);无法正常运行并返回Object {}

有人可以帮忙了解如何获取所有属性吗?

由于

1 个答案:

答案 0 :(得分:0)

获取操作是异步的,因此您需要在获取操作完成后检查属性。下面是否按预期输出您的属性?

fetchAcceptedTerms: function () {
  var self = this;
  this.appAcceptedTerms = new T1AppAcceptedTerms();
  this.acceptedTerms = new AppAcceptedTerms();

  this.acceptedTerms.fetch({
    success: function (data) {
      console.log(data);
      if (data.meta.status === 'success') {
        self.appAcceptedTerms.set(data.data);
        console.log(self.appAcceptedTerms);
        console.log(self.appAcceptedTerms.attributes);
      }

    }
  });
}