繁体   English   中英

在主干视图中导入json

[英]Import json in backbone View

我刚接触骨干,但我仍然习惯于所有流程。我想做的是在模型中导入data.json文件,并在我的视图中使用它。

data.json

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

asset / 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() {

    }
});

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

使用JQuery:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM