无法在骨干模型上调用fetch

时间:2014-12-30 22:38:38

标签: backbone.js

在下面的jsonRequest函数中,我可以将this.model记录到控制台,但我无法调用this.model.fetch(),我认为这是向我提出请求的合适方式服务器(localhost:8080/jsonapi)。它给我的错误是无法调用未定义的fetch。在下面的代码中有什么我做错了吗?

var MyModel = Backbone.Model.extend({
      url: 'jsonapi',
});

var MyView = Backbone.View.extend({
        el: '#blahblah',
        initialize: function(){

        },
        events: {
                'click #start' : 'callJsonRequest',

        },
        callJsonRequest: function(){
              setInterval(this.jsonRequest, 1000);
        }, 

        jsonRequest: function(){
                         console.log("jsonrequest", this.model); //this logs the model
                         this.model.fetch();
                     },

  });

    window.myModel = new MyModel();
    window.startStop = new StartView({model: myModel});

1 个答案:

答案 0 :(得分:1)

您可能需要使用bind来确保this是View对象的上下文。

正如您在评论中提到的,您可以这样做:

setInterval(this.jsonRequest.bind(this), 1000);