首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Backbone.js绑定动态el生成

Backbone.js绑定动态el生成
EN

Stack Overflow用户
提问于 2014-02-02 10:43:00
回答 2查看 127关注 0票数 0

在创建视图并动态创建"el“元素并将其传递给正在创建的视图时,我遇到了一个小问题。

代码语言:javascript
复制
var divIdentification = ".data-identification-"+this.model.dataTypeId+"-"+this.model.dataGrouping.get("data1Id")+"-"+this.model.dataGrouping.get("data2Id");

以下作品

代码语言:javascript
复制
var roomOccupancyView = new Bookings.RoomOccupancyView({
                    model: datas,
                    el: "div"
                });

然而,以下并不是

代码语言:javascript
复制
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时,将得到以下对象

代码语言:javascript
复制
<div class="header-container">

但是,当我传递变量时,我会得到“未定义”。

此外,我还尝试将变量输出包装为$(string),但是这也无法工作,因为console.log仍然提供了不同的输出。

是否有人知道将动态值传递给el属性值。任何帮助都是非常感谢的。

你好,MilindaD

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-02 17:17:07

正如注释所指出的,通过初始化器函数传入的el属性只能是String或jQuery对象。否则,主干将从它的tagNameclassNameid属性创建一个el。

因此,在第一个场景中,您传递了el: "div",然后主干将将视图的el绑定到DOM中的第一个div元素。

在第二个场景中,您传递了el: divIdentification并将视图的el设置为$(divIdentification),这在DOM中没有定义。

以便动态设置el。3种方法

  1. 在初始化器中为el赋值一个有效的html字符串,或者选择器字符串,或者仅仅是一个有效的jQuery DOM对象。
  2. 在初始化器中将classNameid属性分配给divIdentification,以允许主干视图创建自己的el
  3. 另一种方法是使用setElement 这里
票数 1
EN

Stack Overflow用户

发布于 2014-02-02 15:05:49

您的问题是在哪里创建您的divIdentification关键字this,而不是指向您的视图,尝试如下:

代码语言:javascript
复制
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");
                    } 
                });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21509593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档