BackboneJS View - Uncaught TypeError: Cannot read property 'get' of undefined

BackboneJS View - Uncaught TypeError: Cannot read property 'get' of undefined

我有以下 Backbone 具有渲染功能的视图,如下所示:

render: function () {
this.emptyContent();
    if (this.model.get('ChatsInQueue') == -1) {
        this.model.set('ChatsInQueue', '-');
    }
    this.$el.append(this.template({ Stats: this.model.toJSON(), Prior: this.model.get('PriorDayStats') }));

    var self = this;
    this.graphView.model.fetch({

        success: function () {
            self.graphView.render(this.model.get("TotalCalls"), this.model.get("CallsAbandoned"));
        }
    });  
 this.tickerTapeText();
    $(window).trigger('resize');

但是,当我 运行 应用程序时,我收到以下控制台错误:

Uncaught TypeError: Cannot read property 'get' of undefined
at success

有人可以帮我诊断我的成功功能需要更改哪些内容才能定义 'get' 吗?

JavaScript 的 function 绑定了它自己的 this,这与创建它的上下文的 this 不同。在 ES6 中,arrow functions作为不绑定自己的函数的替代方法引入 this(除其他外,请参阅 MDN 网络文档)。

您已经通过声明变量 self 并将 this 分配给它并将其用于 self.graphView.render 调用来解决这个问题。但是,在参数中,您仍然使用 this 而不是 self。在那里也使用 self ,或者如果您的环境实现了箭头函数,则更好地使用它们。 Current browsers should already support them.