Javascript 主干将模型视为集合

Javascript 主干将模型视为集合,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,因为集合实际上是一个模型,所以它有属性等等,如本例所示 var Images = Backbone.Collection.extend({ url: 'https://api.myjson.com/bins/4v2d8' }); var View = Backbone.View.extend({ el: $('.images'), initialize: function(){ this.listenTo(this.collection, 'sync', this.re

因为集合实际上是一个模型,所以它有属性等等,如本例所示

var Images = Backbone.Collection.extend({
  url: 'https://api.myjson.com/bins/4v2d8'
});

var View = Backbone.View.extend({
  el: $('.images'), 

  initialize: function(){
    this.listenTo(this.collection, 'sync', this.render, this); // what is this keyword as the last param here?
  },

  render: function(){

    this.collection.each(function(model){
      this.$el.append($('<p>'+model.get('name')+'</>' ));
    }, this);

  }
});

$(function(){

  var images = new View({ collection: new Images() });

  images.collection.fetch();

});
var Images=Backbone.Collection.extend({
网址:'https://api.myjson.com/bins/4v2d8'
});
var View=Backbone.View.extend({
el:$(“.images”),
初始化:函数(){
this.listenTo(this.collection,'sync',this.render,this);//这里最后一个参数是什么关键字?
},
render:function(){
此.collection.each(函数(模型){
这个.el.append($(''+model.get('name')+''));
},这个);
}
});
$(函数(){
var images=新视图({collection:new images()});
image.collection.fetch();
});

但是为什么这个不起作用呢

我用
Model
替换了
Collection
,并传递给视图。我得到了
这个.model.每个未定义的

因为集合实际上是一个模型

不,这是错误的假设。集合不是一个模型,这就是代码无法工作的原因

模型没有each方法,您的代码抛出以下错误:

Uncaught TypeError: this.model.each is not a function(…)
不要按照另一个答案迭代模型属性并打印其名称,这没有意义。因为模型应该代表一个实体,比如一个人。它只有一个包含名称的属性,对模型属性进行迭代以访问其中一个属性没有意义,您可以使用
get()
方法直接访问它的属性,而无需进行迭代。

虽然是对的,但他没有详细说明原因

主干模型具有许多用于管理的功能,通常由id引用

主干网集合是一组主干网模型实例。它有一些相似的和许多不同的功能来管理its,its是模型实例存储的地方

其中一些函数是函数的代理

  • 钥匙
  • 价值观
  • 成对的
  • 倒置
  • 省略
  • 链子
  • 空空如也
目前共46个,见列表


是对的代理


主干网的模型没有每个
函数,因为它没有真正意义,并且有更好的方法循环模型的属性。

“既然集合实际上是一个模型”-什么?你是从哪里/如何得出这个结论的?实际上,在本例中,模型返回了一个假帐户list@V.S.V然后,您应该首先使用
get()
访问属性,然后使用
\uU4.each()
(或任何您喜欢的循环)对其进行迭代以访问项目。从模型的角度来看,这只是另一个属性……那么你从model.get()列表项中会得到什么?@V.s.V该端点返回一个项目数组。为此,您需要一组模型,而不是单个模型。模型是针对单个项目的。我知道我只写了一个模型,它将像集合一样工作(这是一个糟糕的做法)。我只是写下在他的情况下什么会起作用,很抱歉我会改变它:)请检查这个链接,我不说他错了,只是check@V.S.V是的,我见过,传递给集合的标准模型数组。我遗漏了什么?你读过问题了吗?这家伙想把它改成模型(不是收藏)@EmileBergeron@V.S.V我完全阅读了这个问题,它并没有真正解释桑迪想要什么,只是
这个.model。每个
都是未定义的。您的答案只是错误地使用了集合之类的模型。没有道理。对不起,我的错:(
collection.each(iteratee, [context])