我已经使用骨干和node.js创建了一个项目,它工作正常。
但是现在我正在尝试使用phonegap 3.0创建一个应用程序。
到目前为止,我只是试图将骨干即客户端与Phonegap集成在一起。
但我的问题是没有加载数据。我正在运行服务器,并在主干模型中提供服务器的IP地址。

以下是模型的代码。

define([
'backbone',
'app/helpers/config'
], function(Backbone, config) {
var Model = Backbone.Model.extend({
    urlRoot: 'SERVERIP:3000/deals'
});

var Collection = Backbone.Collection.extend({
    models: Model,

    initialize: function(attrs) {
        this.options = attrs;
    },

    comparator: function(deal) {
        return deal.get('rating');
    },

    url: function() {
        var url = 'SERVERIP:3000/deals';

        if (this.options.q) {
            url += '/q=' + this.options.q;
        }
        if (this.options.p) {
            url += '/s=' + (this.options.p - 1) * config.pageSize;
        } else {
            url += '/s=' + 0;
        }

        url += '/t=' + config.pageSize;

        return url;
    },

    getPageUrl: function(direction) {
        var page, url = 'serverIP:3000/deals';

        if (direction === 'next') {
            page = this.pageNumber + 1;
        } else if (direction === 'prev') {
            page = this.pageNumber > 1 ? this.pageNumber - 1 : 1;
        }

        if (this.options.q) {
            url += '/q=' + this.options.q;
        }

        return url + '/p=' + page;
    },

    parse: function(response) {
        this.total = response.totalMatchCount;
        this.skipped = response.criteria.resultsToSkip;
        this.pageNumber = Math.round(this.skipped / config.pageSize) + 1;

        return response.matches;
    }
    });

    return {
        model: Model,
        collection: Collection
    };
});


在url根目录中,我提到了IP地址。您能否检查一下,让我知道为什么没有填充数据。

最佳答案

我敢打赌,您的问题不是URL,它是您调用fetch()的位置或方式。你在某处叫它吗?您可以让我们看到此代码吗?

您不应该在deviceready事件之前调用它,否则在移动设备上可能会发生奇怪的事情,请查看以下内容:

JQuery document.ready vs Phonegap deviceready

关于javascript - 尝试集成phonegap 3.0和 Backbone 时未加载数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20877398/

10-11 22:15
查看更多