If statement #if语句抛出TypeError:节点未定义

If statement #if语句抛出TypeError:节点未定义,if-statement,ember.js,firebug,handlebars.js,client-side-scripting,If Statement,Ember.js,Firebug,Handlebars.js,Client Side Scripting,考虑为Ember.js编写的Handlebar中的以下代码片段: <script type="text/x-handlebars" id="courses/selectedCourse"> <div id="selectedCourse"> {{#if IsRegistered}} <div class="XX"> Regi

考虑为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>

{{#如果注册}
注册参加课程
{{else}
登记
{{/if}
{{courseTitle}}
问题1:注册课程后内容不会立即刷新

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

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

TypeError:节点未定义

[在此错误上中断]

node.uncain(键,路径)

如果我删除
#If
语句,一切都会正常工作


我做错了什么?

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

{{#if isRegistered}}

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

{{#if model.isRegistered}}

为了避免这个错误。

值得注意的是,我对第一个字符大写变量也有同样的问题。将第一个字母改为小写解决了这个问题。疯狂!