gpt4 book ai didi

Backbone.js 将数据放入集合和模板中

转载 作者:行者123 更新时间:2023-12-04 05:16:46 24 4
gpt4 key购买 nike

我是backbone.js 的新手,需要一些帮助将数据发送到模板。我使用了一个带有 fetch 的模型和一个集合。这是代码:

(function($) {

var UserModel = Backbone.Model.extend({
urlRoot : '/users',
defaults : {
name : '',
email : ''
},

initialize : function() {
_.bindAll(this);
this.fetch();
},
parse : function(res) {
return JSON.stringify(res);
},

});

var users_coll = Backbone.Collection.extend({
//model: UserModel
initialize : function() {
var u = new UserModel();
this.model = u;
}
});

var displayView = Backbone.View.extend({

initialize : function() {

this.collection = new users_coll();
//_.each(this.collection.models, alert);
//console.log(this.collection);
//alert(JSON.stringify(this.collection.models));

this.render();
},
render : function() {
var tmpl = _.template($("#data-display-tpl").html());
this.$el.html(tmpl);

}
});

var view = new displayView({
el : $("#data-display")
});

})(jQuery);

它在模型部分工作正常。在模型的解析函数中,我使用了 console.log() 并且一切似乎都很好。我得到了一个格式正确的 json,而且 fetch 也能正常工作。

但是在我的收藏中,当我尝试 console.log(user_coll.models) 时,我什么也没得到。
我想我可能错过了一些非常小的东西。不确定是什么,也许事情的流程都是错误的。

最佳答案

集合的模型属性用于指定集合将包含的模型类型,如果指定,您可以将原始对象数组传递给集合,它会添加和创建它们。来自 docs

Override this property to specify the model class that the collection contains. If defined, you can pass raw attributes objects (and arrays) to add, create, and reset, and the attributes will be converted into a model of the proper type



所以当你的代码中你有
  var u = new UserModel();
this.model = u;

您实际上并未将模型添加到集合中。相反,您可以使用集合 addfetch方法。

关于Backbone.js 将数据放入集合和模板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14159165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com