javascript - 模型渲染内 View : toJSON is not a function

标签 javascript backbone.js view model

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

 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()}

View 中的每个模型(模型、集合和 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 的标准选项。所以 Backbone 会忽略它。

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

所以你的 View 定义应该是

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

关于javascript - 模型渲染内 View : toJSON is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33589000/

相关文章:

JavaScript - 多次调用单击函数将不起作用

javascript - 在nodejs中使用wait.for暂停非阻塞文件读取

localization - 在 Play 中无需任何 Controller 即可渲染 View

Android 在 View 上禁用多点触控

java - 在 Android 中比较 View 和布局的资源高效方式

java - Android View 或 Activity ?

javascript - 如何仅通过第一个字符来选择标签?

javascript - JQuery UI Accordion - 可排序问题

javascript - 带 Backbone 的 SPA 的 Require.js 优化器

javascript - 使用 requirejs 加载 Backbone 插件