Javascript 将模型提取到集合
我对脊梁骨还很陌生,刚刚遇到这个令人困惑的问题。我正在尝试使用以下代码将模型提取到Express node.js服务器中的集合中:Javascript 将模型提取到集合,javascript,node.js,backbone.js,express,Javascript,Node.js,Backbone.js,Express,我对脊梁骨还很陌生,刚刚遇到这个令人困惑的问题。我正在尝试使用以下代码将模型提取到Express node.js服务器中的集合中: app.get('/tweet', function(req,res){ res.send([{ name: 'random_name' }, {name: 'diren_gezi'}] ); }); 我的主干代码如下所示: var PostsApp = new (Backbone.View.extend({ Collections: {},
app.get('/tweet', function(req,res){
res.send([{ name: 'random_name' }, {name: 'diren_gezi'}] );
});
我的主干代码如下所示:
var PostsApp = new (Backbone.View.extend({
Collections: {},
Models: {},
Views: {},
}
start: function(){
var data = {
posts: [
{name:"gorkem"},
{name: "janish"},
{name: "akash"}
]
};
var posts = new PostsApp.Collections.Posts(data.posts);
var postsView = new PostsApp.Views.Posts({collection: posts});
posts.url = "/tweet";
posts.fetch();
console.log(posts.length);
console.log(posts);
}
}))({el : document.body});
我希望console.log(posts.length)返回5,因为我在初始化时添加了3,在获取时添加了2。或者,即使fetch方法删除集合并重新填充,我也希望posts.length返回2。但是它返回3,但是当我从控制台查看post对象时,我只看到两个模型,一个来自fetch()方法。这是什么原因
这是因为,当您进行提取时,集合被重置 因此,以前的内容将被删除,并用2个新内容刷新。这就是你看到长度为2的原因 passmerge:true,以查看长度为5,其中有效合并了集合
posts.fetch({merge: false});
因为您已经声明了数据,当您提取数据时,您将返回另外两个
var data = {
posts: [
{name:"gorkem"},
{name: "janish"},
{name: "akash"}
但是我没有看到2的长度,我看到3的长度。。正如我在问题2中所说的,这是我困惑的一部分,posts.length应该告诉我集合中的模型数量,对吗?对。。但是,您的集合是使用fetch请求刷新的,该请求使用模型填充,因此您可以看到长度为2