0

我的 javascript 中有以下代码:

    var context = {
        "title": section_title
    };

    var section_template = $("section-template").html(),
        template = Handlebars.compile(section_template);

    alert("yeah!");
    alert(context.title);
    var final_section_content = template(context);

    alert("WHat?");

alerts()它们纯粹是为了调试目的 。

section_template正确填充了我准备的模板

template有一个函数作为它的值,所以我认为编译也很顺利。

“是啊!” 并且上下文的标题正确显示。但是,执行过程中似乎出了点问题template(context);。“什么?” 永远不会引发警报,因此永远不会设置 HTML 内容(稍后在程序中)。稍后在程序中,我使用final_section_contentjQuerybefore()函数的值。但是“什么?” 本身并没有被执行。知道为什么吗?

模板代码:

<script id="section-template" type="text/x-handlebars-template">
    <div class="row-fluid">
        <div class="span8 offset1">
            {{! This will contain the section requirements}}
            <div class="section-title">
                <span class="add-on">
                    <i class="icon-plus-sign"></i>
                </span>

                <h2>
                    {{title}}
                </h2>
                <i class="icon-list" data-placement="bottom" data-title="Create sub-section"></i>
                <i class="icon-pencil" data-placement="bottom" data-title="Edit section title"></i>
                <i class="icon-trash" data-placement="bottom" data-title="Delete section"></i>
                <div class="subsection">
                    {{! Dummy container for subsection}}
                </div>
            </div>
        </div>
        <div class="span2 offset1">
            {{! This will contain the total score for the section}}
        </div>
    </div>
</script>
4

1 回答 1

1

Make sure that the element containing the template code is loaded prior to querying it's contents using $('#section-template').html(). See Why is browser returning error "TypeError: this._input is null" in Firefox (and similar in Chrome) when using handlebars.js? for more details.

于 2012-12-17T16:59:17.143 回答