0

我正在尝试设置我在 jsfiddle 上制作的应用程序的演示,以便获得解决问题的帮助。它将需要进行 ajax 调用。jsFiddle 有一个 echo api(此处为http://jsfiddle.net/zalun/yVbYQ/示例小提琴)来模拟 ajax 调用,但我不知道如何将它集成到骨干模型或集合中,如下所示. 这是骨干模型的小提琴... http://jsfiddle.net/mjmitche/RRXnK/117/如果有帮助的话。

var Game = Backbone.Model.extend({

    initialize: function () {

    },
    getStuff: function () {
        var _this = this;

        $.ajax({
            url: "http://search.twitter.com/search.json?q=from:realDonaldTrump",
            type: "GET",
            success: function (response) {
               alert(response.results[0]);
                alert("success");
               _this.trigger("gameStartedEvent", response);
            },
            error: function (r) {
                alert("error");
                alert(r);

            }
        });

    }

});

var game = new Game();
game.getStuff();

jsfiddle 模拟 ajax 调用的示例

new Request.JSONP({
    url: 'http://jsfiddle.net/echo/jsonp/',
    data: {
        tweet1: 'some text',
        tweet2: 'another text'
        tweet3: 'blah blah'
    },
    onSuccess: function(response) {
        show_response(response, $('post'));
    }
}).send();

show_response = function(obj, result) {
    $H(obj).each(function(v, k) {
        new Element('li', {
            text: k + ': ' + v
        }).inject(result);
    });
    result.highlight();
};
4

1 回答 1

0

JSFiddle echo API 不支持实现 Backbone CRUD 所需的 HTTP 操作范围。POST /echo你可以模拟创建新模型,但仅此而已。

相反,请考虑 sinon.js fakeServer,它autoRespond可以选择在客户端模拟您的服务。这将需要更多的工作,但会提供更“真实”的模拟。

FWIW,对于普通的 CRUD 用例,我推荐Backbone.localStorage。它是 的直接替代品Backbone.sync,因此只需将其作为资源包含,将您的收藏的url属性更改为localStorage,然后您就可以开展业务了。但是,这对您不起作用,因为您正在手动发出 AJAX 请求,因此您需要降低。

于 2013-02-05T07:14:00.803 回答