If statement #if语句抛出TypeError:节点未定义
考虑为Ember.js编写的Handlebar中的以下代码片段: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
<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}}
为了避免这个错误。值得注意的是,我对第一个字符大写变量也有同样的问题。将第一个字母改为小写解决了这个问题。疯狂!