繁体   English   中英

Backbone.js子视图渲染

[英]Backbone.js Subview rendering

我试图与Backbone.js保持联系,并一直遵循Thomas Davis在此处概述的“模块化”方法。

尝试将一个视图“包含”在另一个视图中时,我似乎陷入困境:

SettingsView.js

define([
  'jquery',
  'underscore',
  'backbone',
  'text!templates/settings/settingsTemplate.html'
], function($, _, Backbone, settingsTemplate){   

  var SettingsView = Backbone.View.extend({
    el: $("#interface"),

    render: function() {
      this.$el.html(settingsTemplate);
    }

  });

  return SettingsView;

});

ScriptView.js

define([
    'jquery', 
    'underscore', 
    'backbone',
    'views/settings/SettingsView',
    'models/script/ScriptModel', 
    'collections/scripts/ScriptsCollection',
    'text!templates/script/scriptTemplate.html'
],    
    function($, _, Backbone, SettingsView, ScriptModel, ScriptsCollection,  scriptTemplate) {

    var ScriptView = Backbone.View.extend({
        el : $("#container"),

        render : function() {
            this.$el.html(scriptTemplate);

            //add the settings view
            var settingsView = new SettingsView();
            settingsView.render();
        }
    });

    return ScriptView;
});

更新:我已经设法解决了我刚刚意识到的错误原因(参数顺序错误-DOH!)

我不再收到错误,但是我的“ SettingsView”仍然没有出现。 当我在'ScriptView.js'中进行控制台记录时,我看到'el'是未定义的,所以我想这就是问题所在。

谢谢

我认为您必须将SettingsView附加到ScriptViewel

var ScriptView = Backbone.View.extend({
    el : $("#container"),

    render : function() {
        this.$el.html(scriptTemplate);

        //add the settings view
        var settingsView = new SettingsView();
        settingsView.render();

        this.$el.append(settingsView.el);
    }
});

而关于子视图一个伟大的职位是这一个

希望对您有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM