视图内部的模型呈现:toJSON不是一个函数

Model rendering inside view: toJSON is not a function

本文关键字:函数 一个 toJSON 内部 模型 视图      更新时间:2023-09-26

我在视图中添加了一个模型属性,如下所示:

 app.ActorView = Backbone.View.extend({
        modelImg:'', ....

我跳到渲染部分,因为其他一切都很好:

 render: function () {this.$el.html(this.template({
                modImg: this.modelImg.toJSON(),
                mod: this.model.toJSON(),
                movies: this.collection.toJSON()}

视图中的每个模型(模型、集合和modelimg)都是在我的项目的rooter部分正确提取的:

 modActor.fetch().done(function () {
                modActorMovies.fetch().done(function () {
                    modImgActor.fetch().done(function () {
                        var actorView = new app.ActorView({
                        modelImg: modImgActor,<--problematic model
                            model: modActor,
                            collection: modActorMovies
                        });

我的modImgActor定义如下:

    app.ActorImg= Backbone.Model.extend({
        url: "http://umovie.herokuapp.com/unsecure/actors/272994458/movies",
        parse: function (response) {
            return response.results[0];
        }
    });

问题是当我在modelImg上使用toJson()函数时。存在以下错误:this.modelImg.toJSON不是函数

模型的url是如何定义的?

modImg不是Backbone.View的标准选项。所以主干网会忽略它。

您必须手动处理随选项一起传递的自定义特性。

所以你的视图定义应该是

app.ActorView = Backbone.View.extend({
  initialize: function(options){
      this.modelImg = options.modelImg;
   }
}):