如何使用backbone.js创建和处理Ajax调用

时间:2014-04-07 10:24:47

标签: ajax backbone.js backbone-views

我是骨干的新手。我尝试以下面的方式进行ajax调用。而且我不确定如何处理我的get请求中的数据? 这是代码:

//与服务器交互

var UserModel = Backbone.Model.extend({
    url:'http://api.geonames.org/astergdemJSON?formatted=true&lat=50.01&lng=10.2&username=demo&style=full'
});

var MyView = Backbone.View.extend({
    initialize: function() {
        this.model = new UserModel();
        this.model.fetch();
    },
    render: function() {
        alert('do awesome stuff here');
    }
});

1 个答案:

答案 0 :(得分:10)

当您fetch()时,Backbone会向您在url指定的端点发送GET ajax请求。

当您致电.fetch时,模型将触发request事件,当您收到该事件时,将其解析并将其设置为模型,模型将触发sync事件

如果要在将任何数据设置为模型之前更改任何数据,请覆盖模型上的方法parse。它从GET请求接收原始数据,并且必须返回将要设置到模型的内容。

如果您想获得额外的成功和错误回调,请将fecth({ success: ..., error: ... })传递给您。在将值设置和解析到模型之后和同步事件之前触发成功回调。错误事件之前触发错误回调。查看文档以获取更多详细信息。没有必要通过任何回调。

所以,它会是这样的:

var MyView = Backbone.View.extend({
    initialize: function() {
        this.model = new UserModel();
        this.listenTo(this.model, 'sync', this.render);
        this.model.fetch();
    },
    render: function() {
        alert('My model loaded: ' + this.model.toJSON());
    }
});

而且,就是这样。 Backbone几乎可以为您提供一切。

希望我能帮到你。