【发布时间】:2014-09-30 14:22:58
【问题描述】:
我正在尝试在以下模板代码块中使用每个迭代器的把手:
<table>
<tr><th></th><th>Today</th><th>This Month<br>(To Date)</th><th>Last Month</th></tr>
{{#each Activities}}
{{examineObject this}} - first -
<tr><td>{{examineObject this}}</td>
<td>{{Today}}</td>
<td>{{ThisMonth}}</td>
<td>{{LastMonth}}</td></tr>
{{examineObject this}} - third -
{{/each}}
<tr class='total'><td>Net Change</td>
<td>{{Totals.Today}}</td>
<td>{{Totals.ThisMonth}}</td>
<td>{{Totals.LastMonth}}</td></tr>
</table>
examineObject 是我编写的车把助手,只需在变量上调用JSON.stringify()。我这样做是为了评估上下文。助手很简单:
examineObject: function(object){
return JSON.stringify(object);
}
当我编译和渲染上面的模板时,发生了一些非常奇怪的事情。第一次和第三次examineObject 调用中this 的上下文是each 迭代器选择的单个activity。但是,第二个examineObject 调用中的this 的上下文(由html 标签包围)是整个模板的上下文- 不是 由@987654333 选择的单个activity 的上下文@迭代器。谁能解释为什么会这样?
【问题讨论】:
-
请同时为您的助手发布代码。
-
这不是helper的问题,因为即使我不使用helper进行测试,上下文也很混乱。不过,我已经发布了帮助程序。
-
你是这样设置的吗?为我工作:jsfiddle.net/gfullam/5rbpja10
-
不,我使用的是
each迭代器,而不是with迭代器,而且我在 HTML 表中进行操作,而不是ol。我认为我的问题已缩小到表格本身,因为它适用于我测试过的大多数其他类型的 HTML 元素。 -
再次检查小提琴。一开始我发错链接了
标签: each handlebars.js