Uncaught TypeError: this.model.each is not a function

问题描述 投票:0回答:0

我目前是 Backbone JS 的新手。在学习将数据传递给视图时,我遇到了以下错误。我试图解决问题但仍然面临问题。

第一个代码工作正常但下面提到的不同示例的相同代码给我错误

未捕获的类型错误:this.model.each 不是函数。

var Song = Backbone.Model.extend();
var Songs = Backbone.Collection.extend({
    model:Song
});
var SongView = Backbone.View.extend({
        tagName:"li",
        render: function(){
            this.$el.html(this.model.get("Title"));
            return this;
        }
    });
var SongsView = Backbone.View.extend({
        tagName:"li",
        render: function(){
            var self = this;
            this.model.each(function(song){
                var songView = new SongView({model:song});
                self.$el.append(songView.render().$el);
            })
        }
    })
var songs = new Songs([
        new Song({Title:"Alone", Artis:"Alan Walker"}),
        new Song({Title:"Faded", Artis:"Alan Walker"}),
        new Song({Title:"Lost Control", Artis:"Alan Walker"})
    ])
var songsView = new SongsView({
        el:"#container",
        model:songs
    })
    songsView.render();

下面提到的代码抛出错误。两个代码具有相同的结构,但我仍然收到此错误。

var Vehicle = Backbone.Model.extend();
var Vehicles = Backbone.Collection.extend({
    model:Vehicle
});
var VehicleView = Backbone.View.extend({
    tagName:"li",
    render: function(){
        this.$el.html(this.model.get("Type"));
        return this;
    }
});
var VehiclesView = Backbone.View.extend({
    tagName:"li",
    render: function(){
        var self = this;
        this.model.each(function(vehicle){
            var vehicleView = new VehicleView({model:vehicle});
            self.$el.append(vehicleView.render().$el);
            
        })
    }
})

var vehicles = new Vehicle([
    new Vehicle({Type:"Car"}),
    new Vehicle({Type:"Bike"}),
    new Vehicle({Tyep:"Bus"})
])

var vehiclesView = new VehiclesView({el:"#vehicle-container", model:vehicles});
vehiclesView.render();
javascript backbone.js
© www.soinside.com 2019 - 2024. All rights reserved.