主干.js在调用渲染之前更改视图的 el 值

backbone.js changing el value of views before render is called

本文关键字:视图 el js 调用 主干      更新时间:2023-09-26

我有 3 个不同的视图,每个视图共享相同的 el 值:

el:"<div id='main-inner'>"

在渲染函数中:

this.$el.html(html);

我被要求将所有这些合并到一个页面上,所以我正在尝试制作一个主视图,其中包含这些视图的集合并呈现其中的每个视图。 问题是它们各自写入相同的元素,#main 内部并在附加自己的 html 值之前清除它的 html。 在从主/包装器视图渲染之前更改 el 值的正确方法是什么? 这是最好的方法吗?

谢谢!

初始化视图时将 el 移交给视图:

var view1 = new myView({el:'#div1'});
var view2 = new myView({el:'#div2'});
var view3 = new myView({el:'#div3'});

在您看来:

var myView = Backbone.View.extend({
   initialize: function(options){
     this.el = options.el; 
   }
});

现在你有视图,每个渲染都有自己的el。

希望这能有所帮助。

您可以将 el 定义为全局并使用它。例:

App.Common.el = ";

用:

App.Common.el