将ember-view渲染到已定义的容器中

时间:2014-09-12 09:58:24

标签: javascript ember.js view

我正试图绕过emberjs,我现在的问题是我有以下标记:

<div class="row">
    <div class="col-lg-12">
        <script type="text/x-handlebars">
            Hi, {{name}}!
        </script>
    </div>
</div>

ember-view正在结束</body>

之前呈现
    <div id="ember298" class="ember-view">
        Hi, Alex!
    </div>
</body>

而不是我期待的地方,在div.col-lg-12内。而我无法理解为什么会这样。我错过了什么?

1 个答案:

答案 0 :(得分:1)

您的Handlebars模板应该在HTML的顶层声明,标记在script标签内,而不是相反。例如,像这样:

<body>
    <script type="text/x-handlebars" data-template-name="index">
        <div class="row">
            <div class="col-lg-12">
                Hi, {{name}}
            </div>
        </div>
    </script>
</body>

这允许Ember.js正确检测模板并在到达适当的路线时将其填入。查看example JSBin for Ember,您将更好地了解如何编写模板。您可能还想阅读Ember's guide on template basics

编辑:可能有帮助的事情是要记住Handlebars模板不必进入HTML文件。我把它放在.hbs文件中并将它们编译为Javascript。 Handlebars脚本标签实际上就是为了方便起见。换句话说,永远不要在标记内添加脚本标记,只需使用Handlebars表达式,Ember就会知道该怎么做。