我正在尝试将一个临时/上下文变量存储在一个 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}}
实例数组中的每个数据对象都有一个设置为特定值的 templateId 属性,并且模板数组中的每个对象都有一个 id 属性。
第一个问题是我的调试 {{:~templateId}} 没有出现。似乎没有分配变量。
仅在模板标记中使用 ~helper 集后,我尝试在我的“viewmodel”中明确定义助手
$.views.helpers({templateId: 0});
现在,当我没有在 for 循环中设置它时,值会被打印出来,但是当我在 for 循环中设置它时,它会再次消失。
下一个问题可能是 ~templateId 助手在 ~root 范围的 for 循环中不可用,因为助手应该只在实例循环的子视图中可用?
最终目标是在select中选择正确的值,所以如果有其他解决方案,请告诉。