在创建视图并动态创建"el“元素并将其传递给正在创建的视图时,我遇到了一个小问题。
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时,将得到以下对象
<div class="header-container">但是,当我传递变量时,我会得到“未定义”。
此外,我还尝试将变量输出包装为$(string),但是这也无法工作,因为console.log仍然提供了不同的输出。
是否有人知道将动态值传递给el属性值。任何帮助都是非常感谢的。
你好,MilindaD
发布于 2014-02-02 17:17:07
正如注释所指出的,通过初始化器函数传入的el属性只能是String或jQuery对象。否则,主干将从它的tagName、className和id属性创建一个el。
因此,在第一个场景中,您传递了el: "div",然后主干将将视图的el绑定到DOM中的第一个div元素。
在第二个场景中,您传递了el: divIdentification并将视图的el设置为$(divIdentification),这在DOM中没有定义。
以便动态设置el。3种方法
el赋值一个有效的html字符串,或者选择器字符串,或者仅仅是一个有效的jQuery DOM对象。className或id属性分配给divIdentification,以允许主干视图创建自己的elsetElement 这里。发布于 2014-02-02 15:05:49
您的问题是在哪里创建您的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");
}
});https://stackoverflow.com/questions/21509593
复制相似问题