1

所以我使用backbonejs根据我从谷歌数据存储接收到的数据生成一个html页面。我遇到的问题是试图在接收到数据之前阻止我的渲染方法返回。

一个小问题:是否可以打开传入 html 的 window.open() ?

4

3 回答 3

0

在您的收藏中:

var c = Backbone.Collection.extend({
    url: '/path/to/api',

    initialize: function() {
        this.deferred = this.fetch();
    }
});

在您看来:

var v = Backbone.View.extend({
    render: function() {
        c.deferred.done(function() {
            /* Render your View here */
        });
    }
});

由于collection.fetch()返回了 jqXHR,这成为可能。更多解释在这里

于 2012-09-02T05:43:07.083 回答
0

您可以通过 window.open() 打开窗口,然后在该窗口中调用预定义的函数并传递数据(或 HTML ) 到那个功能,让它完成你的工作:)

于 2012-08-31T22:37:46.083 回答
0

为什么要打呢?在谷歌数据将去的区域用微调器加载你的页面。当谷歌数据最终返回时,用该数据更新主干并再次渲染;这次使用数据而不是微调器。

如果您真的想与之抗争,您可以使 jQuery ajax 调用与该async选项同步运行。添加async: false到您传递给 ajax 调用的选项。

jQuery.ajax() 文档

于 2012-08-31T22:51:03.587 回答