请考虑为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中看到的消息:
TypeError:节点未定义
[打破此错误]
node.unchain(key,path);
如果我删除了#if
语句,一切正常。
我做错了什么?
答案 0 :(得分:2)
我有一个类似的问题并通过在if语句小写
中创建参数的第一个字母来修复它{{#if isRegistered}}
答案 1 :(得分:0)
Ember根据惯例做出假设,即大写的属性名称表示全局范围。您可以选择将变量名称修改为小写,或者限定引用。例如,如果属性在您的模型上,则可以使用
{{#if model.isRegistered}}
以避免此错误。