2

考虑为 Ember.js 编写的 Handlebar 中的以下代码段:

<script type="text/x-handlebars" id="courses/selectedCourse">
    <div id="selectedCourse">

    {{#if IsRegistered}}
        <div class="XX">
            Registered for the course
        </div>
        {{else}}
            <div class="YY">
                <button {{action registerForCourse}}>Register</button>
            </div>
     {{/if}}

        <h1>{{courseTitle}}</h1>            
        <div class="selectedCourseItem">            
            <img id="selectedCourse" {{bindAttr src="imageUrl"}}/>
        </div>

    </div>
</script>

问题 1:注册课程后内容没有立即刷新。

问题 2:多次更改所选课程时,内容显示两次并重叠。

以下是我在 FireBug 中看到的消息:

类型错误:节点未定义

[打破这个错误]

node.unchain(键,路径);

如果我删除该#if声明,一切正常。

我究竟做错了什么?

4

2 回答 2

3

我有一个类似的问题,并通过将 if 语句中参数的第一个字母设为小写来解决它

{{#if isRegistered}}
于 2013-09-27T11:02:19.340 回答
0

Ember 正在根据惯例做出假设,即大写的属性名称表示全局范围。您可以选择将变量名称修改为小写,或限定引用。例如,如果属性在您的模型上,您可以使用

{{#if model.isRegistered}}

以避免此错误。

于 2014-08-05T07:19:27.037 回答