JsViews/JsRender temporary/contextual for 循环中的辅助变量
JsViews/JsRender temporary/contextual helper variable in for loop
我正在尝试将 temporary/contextual 变量存储在一个 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}}
实例数组中的每个数据对象都有一个设置为特定值的模板 ID 属性,模板数组中的每个对象都有一个 ID 属性。
第一个问题是我的调试 {{:~templateId}} 没有出现。似乎没有分配变量。
仅在模板标记中使用 ~helper 集后,我尝试在我的 "viewmodel" 中使用
显式定义 helper
$.views.helpers({templateId: 0});
现在当我没有在 for 循环中设置它时打印该值,但是当我在 for 循环中设置它时它又消失了。
下一个问题可能是 ~templateId 助手在 ~root 范围的 for 循环中不可用,因为助手应该只在实例循环的子视图中可用?
最终目标是selectselect中的正确值,所以如果有其他解决方案,请告知。
您需要从模板中删除 ~templateId=templateId
...
解释:
语法~helper
用于访问helpers/contextual参数,可以或者从外部传递in/registered,如下所示http://www.jsviews.com/#helpers, or can be created/set within a template, as in the example you linked to {{for movies ~theater=theater}}
, or in this one: ~frstNm=firstName
: http://www.jsviews.com/#samples/jsr/paths.
因此,通常您要么传入一个助手,要么在模板中创建它——不能同时使用。
在上面的示例中,您首先将 ~templateId
作为 0
传递 - 然后您 将其重新定义为上下文参数 ,使用 ~templateId=templateId
(实际上是将其值设置为 undefined,因为 ...=templateId
将其设置为 templateId [=当前数据的 41=] - 未定义,在你的情况下)。
我正在尝试将 temporary/contextual 变量存储在一个 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}}
实例数组中的每个数据对象都有一个设置为特定值的模板 ID 属性,模板数组中的每个对象都有一个 ID 属性。
第一个问题是我的调试 {{:~templateId}} 没有出现。似乎没有分配变量。
仅在模板标记中使用 ~helper 集后,我尝试在我的 "viewmodel" 中使用
显式定义 helper$.views.helpers({templateId: 0});
现在当我没有在 for 循环中设置它时打印该值,但是当我在 for 循环中设置它时它又消失了。
下一个问题可能是 ~templateId 助手在 ~root 范围的 for 循环中不可用,因为助手应该只在实例循环的子视图中可用?
最终目标是selectselect中的正确值,所以如果有其他解决方案,请告知。
您需要从模板中删除 ~templateId=templateId
...
解释:
语法~helper
用于访问helpers/contextual参数,可以或者从外部传递in/registered,如下所示http://www.jsviews.com/#helpers, or can be created/set within a template, as in the example you linked to {{for movies ~theater=theater}}
, or in this one: ~frstNm=firstName
: http://www.jsviews.com/#samples/jsr/paths.
因此,通常您要么传入一个助手,要么在模板中创建它——不能同时使用。
在上面的示例中,您首先将 ~templateId
作为 0
传递 - 然后您 将其重新定义为上下文参数 ,使用 ~templateId=templateId
(实际上是将其值设置为 undefined,因为 ...=templateId
将其设置为 templateId [=当前数据的 41=] - 未定义,在你的情况下)。