Javascript Backbone.js绑定动态el生成
我有一个小问题,我正在创建一个视图,动态创建“el”元素,并将其传递给我正在创建的视图Javascript Backbone.js绑定动态el生成,javascript,jquery,html,backbone.js,Javascript,Jquery,Html,Backbone.js,我有一个小问题,我正在创建一个视图,动态创建“el”元素,并将其传递给我正在创建的视图 var divIdentification = ".data-identification-"+this.model.dataTypeId+"-"+this.model.dataGrouping.get("data1Id")+"-"+this.model.dataGrouping.get("data2Id"); 以下作品 var roomOccupancyView = new Bookings.RoomOc
var divIdentification = ".data-identification-"+this.model.dataTypeId+"-"+this.model.dataGrouping.get("data1Id")+"-"+this.model.dataGrouping.get("data2Id");
以下作品
var roomOccupancyView = new Bookings.RoomOccupancyView({
model: datas,
el: "div"
});
然而,以下情况并非如此
var divIdentification = ".data-identification-"+this.model.dataTypeId+"-"+this.model.dataGrouping.get("data1Id")+"-"+this.model.dataGrouping.get("data2Id");
var roomOccupancyView = new Bookings.RoomOccupancyView({
model: datas,
el: divIdentification
});
在第一个场景中,当我尝试在子视图中放置el的console.log时,我将el作为字符串传递,得到以下对象
<div class="header-container">
然而,当我传递变量时,我得到“未定义”
此外,我还尝试将变量输出包装为$(字符串),但是由于console.log仍提供不同的输出,因此也无法工作
有人知道如何将动态值传递到el属性值中吗。非常感谢您的帮助
问候,,
MilindaD您的问题是在哪里创建
divIdentification
关键字this
在不指向视图的情况下,请尝试以下操作:
var roomOccupancyView = new Bookings.RoomOccupancyView({
model: datas,
el: function() {
return ".data-identification-" +
this.model.dataTypeId +
"-" + this.model.dataGrouping.get("data1Id") +
"-"+this.model.dataGrouping.get("data2Id");
}
});
正如注释所指出的,通过初始值设定项函数传入的
el
属性只能是String
或jQuery对象。否则,主干将从其标记名
、类名
和id
属性创建el
因此,在第一个场景中,您传递了el:“div”
,然后主干将视图的el
绑定到DOM中的第一个div
元素
在第二个场景中,您传递了el:divIdentification
,主干将把视图的el设置为$(divIdentification),这在DOM中没有定义
以便您动态设置el
。3种方法
el
赋值一个有效的html字符串、选择器字符串或一个有效的jQuery DOM对象className
或id
属性分配给初始值设定项中的divIdentification,以允许主干视图创建自己的el
setElement
不,同样的问题。。。。console.log给出了一个字符串,而当我将“div”或某物直接传递给“el”时,我得到了一个指向div元素的对象或某物(我不太确定)。我想你会回来澄清事情,所以我之前给了你先发制人的一票。@coderek
,正如评论所指出的,通过初始值设定项函数传入的el属性只能是字符串或jQuery对象
此语句为false,因为主干创建的el
类似于this.setElement(u.result(this'el'),false)代码>由此el可以是一个函数,我已经测试过类似这样的东西了el:function(){return“someEl”}
,它工作了。同意。我应该将其重新表述为“只能是计算结果为字符串或jQuery对象的内容”