Promise.resolve()/ Backbone中的上下文

时间:2016-03-01 14:49:01

标签: javascript backbone.js promise

我目前正在尝试使用Promise来解析从数据库中获取模型。以下是:

Promise.resolve(app.Departments.fetch()).then(function(response){
    console.log(response);
    this.$el.html( this.template( {depts: app.Departments.toJSON()} ));
    this.$form = this.$('#form-employee');
    this.$form.validator();
    return this;
})

考虑一切都在渲染方法中,该方法位于 Backbone.View.extend({})对象内。问题是在Promise.resolve()函数内部,它的上下文不同于View对象内部的上下文,它抛出错误而不知道这是指什么。无论如何都要传递给Promise.resolve 这个的正确背景?

1 个答案:

答案 0 :(得分:1)

使用本地参考:

var self=this;
Promise.resolve(app.Departments.fetch()).then(function(response){
   console.log(response);
   self.$el.html( self.template( {depts: app.Departments.toJSON()} ));
   self.$form = this.$('#form-employee');
   self.$form.validator();
   return self;
})