【问题标题】:Getting static data from a json file into backbone model将 json 文件中的静态数据导入骨干模型
【发布时间】:2012-11-13 09:08:06
【问题描述】:

我有以下代码,想知道为什么我的数据没有被提取到我的模型中?我正在使用静态 json 文件,我猜这可能是我的问题,但似乎找不到任何有关它的文档。

var DataModel = Backbone.Model.extend({
    initialize: function () {
        console.log('initiliazed model')
    },

    url: "data/data.json"

});

var StructureView = Backbone.View.extend ({
    initialize: function () {
        console.log('initiliazed view')
        _.bindAll(this);
        this.model.fetch();
        this.render();
        this.model.on('change',this.render);
    },
    el : '#ev-wrapper',
    render: function () {
        $('#ev-wrapper').empty().append(Handlebars.compile($('#ev-template').html())(this.model.toJSON()));
        $('.ev-asset-loader').fadeOut('slow');
    }

});

var structureView = new StructureView({model: new DataModel()});

【问题讨论】:

  • 你能看到你的开发工具收到的数据吗?
  • 我可以......并且愚蠢地意识到我正在加载我的旧 json 文件。就像一个快速的问题 - 如果我使用 model.save() 这会写一个新的 json 文件吗?
  • 不,它不会写一个新的 json 文件。如果模型不存在,model.save() 将发送一个 POST 请求,如果它已经存在,则发送一个 PUT 请求。 (它默认检查模型 ID 以确定这一点)。如果您想在本地测试并编写新的更改等,请同时查看使用 localstorage
  • 谢谢...我觉得没有足够的关于模型和视图关系的文档——我的应用几乎不会使用集合——所以所有教程都倾向于使用集合。
  • 您只需要一点时间就可以理解,我们都去过那里。祝你写出你的第一个主干应用程序好运!

标签: json url backbone.js model fetch


【解决方案1】:

您需要致电fetch。这将使用 url 发出 AJAX 请求

var model = new DataModel();
model.fetch();

打开 Firebug 或您喜欢的浏览器的网络控制台以查看 AJAX 请求并检查是否正常

【讨论】:

    猜你喜欢
    • 2015-10-26
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2016-10-29
    相关资源
    最近更新 更多