【发布时间】:2015-08-26 08:46:33
【问题描述】:
我正在尝试将临时/上下文变量存储在 for 循环中,以便稍后在另一个 for 循环中使用。我使用http://borismoore.github.io/jsrender/demos/step-by-step/11_accessing-parent-data.html 作为参考。
{^{for instances ~templateId=templateId}}
{{:~templateId}}
<select data-link="templateId" class="selected-visible" name="select-template">
{^{for ~root.templates}}
<option data-link="{:name} value{:id} selected{:id == ~templateId}"></option>
{{/for}}
</select>
{{/for}}
instances 数组中的每个数据对象都有一个设置为特定值的 templateId 属性,并且 templates 数组中的每个对象都有一个 id 属性。
第一个问题是我的调试 {{:~templateId}} 没有出现。似乎没有分配变量。
仅在模板标记中使用 ~helper 集后,我尝试使用
在我的“视图模型”中明确定义助手$.views.helpers({templateId: 0});
现在,当我没有在 for 循环中设置它时,该值会被打印出来,但是当我在 for 循环中设置它时,它会再次消失。
下一个问题可能是 ~templateId 帮助器在 ~root 范围的 for 循环中不可用,因为帮助器应该只在实例循环的子视图中可用?
最终目标是在select中选择正确的值,所以如果有其他解决方案,请告知。
【问题讨论】:
标签: view-helpers jsrender jsviews