Backbone是否有办法组合ajax请求?

时间:2014-07-25 19:27:28

标签: javascript backbone.js

例如,在某件事之后我做了:

render: function () {
    new FavoritesView({el: $A.el('#mm'));
    new FeedView({el: $A.el('#at_view'));
    new AccountView();
}

创建3个视图和3个ajax请求。以前我使用的框架在合并请求时只使用了一个框架。

有没有办法在Backbone中执行此操作?

1 个答案:

答案 0 :(得分:0)

您没有提供大量详细信息或代码,但如果有单个请求检索多个对象(根据您以前的框架),那么该请求很可能不是真正的REST接口。默认情况下,Backbone期望为其模型(以及集合)使用REST接口(Ruby风格),因此无法实现您想要的开箱即用。&#34; <#34; < / p>

然而,Backbone很容易扩展,你当然可以覆盖模型/集合&#39; fetch方法使用非REST API。更好的方法可能是为三个模型/集合创建自己的AJAX请求,然后在创建时将适当的数据提供给模型/集合,从而完全避免使用Backbone fetch。类似的东西:

render: function() {
    $.getJSON("url/to/aggregated/data", function(data) {
        var favorites = new Favorites(data.favorites);
        var feed = new Feed(data.feed);
        var account = new Account(data.account);

        new FavoritesView({el: $A.el('#nm'), collection: favorites);
        new FeedView({el: $A.el('#at_view'), model: feed);
        new AccountView({model: account});
    });
}