在 backbone 视图中导入 json

Import json in backbone View

我是 backbone 的新手,我还在习惯一切的流程。我想做的是在我的模型中导入 data.json 文件并制作在我看来使用它...

data.json

[
  { id: "001", student: "Mark" },
  { id: "002", student: "Sally" },
  { id: "003", student: "Harold" }    
]

assets/data.js(模型)

var DataModel = Backbone.Model.extend({
    url: 'assets/data.json',

    initialize: function() {
        // this logs properly
        console.log('this initializes');
    }
})

data_view.js

var Students = Backbone.View.extend({
    initialize: function() {
        var data = new DataModel();
        data.fetch();

        // doesn't return json
        console.log(data);
    }
})

这样的数据日志...

v __proto__: Backbone.Model
  > constructor: ()
  > initialize: ()
    url: "assets/data.json"
  > __proto__: Object

我的所有导入都是正确的,但为什么我的 json 没有加载到我的视图中?我究竟做错了什么? (我试过制作一个合集,但效果相同;找不到 json)

因为 fetch 使用的是 jQuery Ajax,所以它是异步的。如果您在调用 fetch 后立即记录数据,则不会从服务器拉取数据。你应该这样做:

data.fetch({
    success: function(model, response, options) {
        console.log(model);
    },
    error: function() {

    }
});

Link参考:http://backbonejs.org/#Model-fetch

使用 JQuery:

        var DataModel = new DataModel();
        $.when(DataModel.fetch()).then(function() {
            var students = new Students({model: DataModel });
        });