Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Backbone.js绑定动态el生成_Javascript_Jquery_Html_Backbone.js - Fatal编程技术网

Javascript Backbone.js绑定动态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

我有一个小问题,我正在创建一个视图,动态创建“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时,我将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对象的内容”