Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 使用尚未创建的el的主干网?_Javascript_Dom_Backbone.js - Fatal编程技术网

Javascript 使用尚未创建的el的主干网?

Javascript 使用尚未创建的el的主干网?,javascript,dom,backbone.js,Javascript,Dom,Backbone.js,我正在使用主干网构建一个网页应用程序 我的主视图依赖于将根据URL替换页面主体部分的模板,但由于我必须为该视图提供一个“el”,所以我希望它是模板本身,该模板将插入DOM中的“render”或“initialize”方法中 但是当我调用新的MyMasterView时,el是未定义的,因为它在实例化时不存在于DOM中 我该怎么办 我找到的唯一修复方法是将el设置为替换内容的现有DOM,并在渲染中调用.remove().append(_模板),但我不确定这是最好的方法。您是否尝试过将el保留为nul

我正在使用主干网构建一个网页应用程序

我的主视图依赖于将根据URL替换页面主体部分的模板,但由于我必须为该视图提供一个“el”,所以我希望它是模板本身,该模板将插入DOM中的“render”或“initialize”方法中

但是当我调用新的MyMasterView时,el是未定义的,因为它在实例化时不存在于DOM中

我该怎么办


我找到的唯一修复方法是将el设置为替换内容的现有DOM,并在渲染中调用
.remove().append(_模板)
,但我不确定这是最好的方法。

您是否尝试过将
el
保留为null,只设置
标记名
?如果这样做,将为视图的元素创建一个新的分离DOM节点。您应该能够呈现从页面DOM中分离出来的DOM片段,然后外部代码可以使用<代码>附录< /代码>或类似jQuery的代码>替换为。
<div id="existing">

</div>

这将要做的是,它将视图的
el
现有的
(或任何其他DOM元素)更改为
内部模板
。因此,在删除
el
时,将删除
inner_template
元素,保持
元素在DOM中的现有状态。

您有任何示例代码吗?太棒了!我不知道setElement!谢谢!:)
<div id="inside_template">
  <!-- content of the template goes here -->
</div>
render : function() {
  this.$el.html(this.template());
  this.setElement("#inside_template");

  // another render method content
}