我目前必须在下面编写代码和一个静态 json 文件。但是,如何将我的模型默认设置为 json 文件中的数据?我的 JSON 文件有几页 - 我希望能够获取默认值并设置默认值。
var PageModel = Backbone.Model.extend({
initialize: function () {
console.log('initiliazed model');
},
url: "data/data.json",
defaults: function() {
return PageView.defaultsFromJSON;
}
});
var PageView = 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').append(Handlebars.compile($('#ev-template').html())(this.model.toJSON()));
$('.ev-asset-loader').fadeOut('slow', function (event) {
this.remove();
});
}
});
pageModel = new PageView({model: new PageModel()});
json 文件 -
{
"page":[{
"id":"p05",
"title":"ptitle1",
"text":"pinitialtext"
},
{
"id":"p10",
"title":"ptitle2",
"text":"pinitialtext"
}]
}
最佳答案
您是否使用服务器端语言呈现页面?如果是,请将 JSON 字符串注入(inject)包含默认值的 View ,并用它填充模型。
var data = <?php echo $json ?>,
model = new PageModel(data),
view = new PageView({model: model, el : $('#ev-wrapper')[0]});
如果您不使用服务器端语言,我认为您可以使用 JQuery 发出 AJAX 请求来加载您的 JSON 数据,但这与调用 fetch
是一样的。
我看不到以其他方式“包含”JSON 文件的方法。
关于json - 如何从 json 文件填充模型数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13365602/