我应该如何将我的数据附加到我的Backbone Views?

时间:2011-11-24 11:17:36

标签: javascript jquery ajax backbone.js

我的观点正确显示虚假信息,因此我现在尝试应用异步数据加载来检索实际数据。问题是我不确定我应该怎么做。我应该自己创建AJAX调用吗?我应该使用Socket API吗?我应该使用内置的REST API(以及如何异步执行)?服务器端处理程序仍未实现,因此服务器如何提供数据,这是完全灵活的。

1 个答案:

答案 0 :(得分:2)

我怀疑你自己的ajax电话是否需要......

我无法分辨套接字但是我知道这是可能的,并且取决于你的应用程序一个坚实的想法。

我一直在使用默认的REST功能,它对我很有用, 我将如何做的一个小例子,

为了使它不那么复杂,我将只是从页面加载,而不是使用路由器和所有。

var myView = Backbone.View.extend({
    initialize: function() {
        _.bindAll(this, 'render');
        var v = this;
        this.model.bind("change", function(e) {
            this.render();    
        });
    },
    render: function() {
        this.el.empty();
        this.el.text(this.model.get('name'));
    }
});

var myModel = Backbone.Model.extend({
    url: "/api/myModel", // change to your server code... 
    defaults: {
        name: "john"
    }
});

$(function(){
    var m = new myModel({}); // dummy model
    var v = new myView({ model: m, el: $('#myDiv')});
    v.render();

    m.fetch(); // takes the url of the model or collection and fetches it from the server side ...

});

如果你想测试fetch会做什么,你可以从你的控制台尝试这个代码,(或者将它添加到jquery文档加载函数:

m.set({ name: 'peter' });

这会更改模型的属性“name”,您将立即看到视图更新本身,因为它会侦听模型的change事件。

有关这些活动的更多信息,请访问:http://documentcloud.github.com/backbone/#Events