0

我想通过渲染来渲染我的页面

  1. 标题
  2. 身体

问题是,当我渲染这两个部分时,主体没有被包裹到.contentdiv 中,这里有一些代码:

<html>
<head></head>
<body>
  <div id="content">

      <script type="text/template" id="header-template">
        <div>navbar</div>
      </script>
      <div id='header-container'></div>

      <script type="text/template" id="body-template">
        <p>Welcome !</p> <!-- Is not wraped inte the #content div -->
      </script>

    </div>
</body>
</html>

使用backone,我只是这样做:

hearder.render();
body.render();

谢谢 !

4

1 回答 1

0

您的 HTML 完全被破坏:您的模板有一个 unclosed <div>,但</div>页面上有一个不匹配的关闭标记。看起来您正在尝试某种document.write样式模板,其中第一个模板打开一个标签,而后一个模板将其关闭。我不会推荐它。查看Backbone.View 文档,了解如何将视图呈现到某个元素。

基本上你应该在 DOM 中有容器元素:

<div id="header-container"></div>
<div id="content"></div>
<div id="footer-container"></div>

然后将视图渲染该元素中:

body.render({el:"#content"});

或者:

body.render();
$("#content").html(body.el);

我敢打赌,如果你解决了这些问题,它可能会更好一些。

于 2013-01-16T12:51:20.497 回答