【问题标题】:calling another function from backbone.js fetch success从backbone.js调用另一个函数获取成功
【发布时间】:2012-10-12 03:39:24
【问题描述】:

我试图在第一个函数中获取成功时调用另一个函数,但我不断收到未定义的错误。 console.log('success') 工作正常。

在视图中:

secondFunction: function() {
  console.log('second function called');
},

someFunction: function() {
  someData.fetch({
    success: function(results) {
      console.log('success');
      this.secondFunction();
    }
  });
 },

当我这样做时它很好,但我需要 secondFunction 等到第一个数据成功。

secondFunction: function() {
  console.log('second function called');
},

someFunction: function() {
  someData.fetch({
    success: function(results) {
      console.log('success');
    }
  });
  this.secondFunction();
 },

【问题讨论】:

    标签: backbone.js


    【解决方案1】:

    尝试:

    someFunction: function() {
      var self = this;
      someData.fetch({
        success: function(results) {
          console.log('success');
          self.secondFunction();
        }
      });
     },
    

    注意self的使用。请记住,您在回调函数中;-)

    【讨论】:

    • self 似乎不起作用,但 var that = this;工作。感谢您的回复。
    【解决方案2】:

    你必须绑定这个

    `

    someFunction: function() {
      someData.fetch({
        success: function(results) {
          console.log('success');
          this.secondFunction();
        }.bind(this)
      });
     },
    

    `

    【讨论】:

      猜你喜欢
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 2019-12-17
      相关资源
      最近更新 更多