Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JsRender:如何将变量传递到嵌套模板_Javascript_Jquery_Jsrender - Fatal编程技术网

Javascript JsRender:如何将变量传递到嵌套模板

Javascript JsRender:如何将变量传递到嵌套模板,javascript,jquery,jsrender,Javascript,Jquery,Jsrender,我想在网页的不同部分使用嵌套模板。对于不同的部分,我需要从嵌套模板中的数组中获取一个值。我不能使用for循环,因为每个部分在网站上有不同的类别和位置。是否可以将变量传递到嵌套模板中?以下代码简化了我试图实现的目标: <script id="myBtnTmpl" type="text/x-jsrender"> <button class="btn"> {{:myData.myArray[INDEX_VARIABLE].btnName}

我想在网页的不同部分使用嵌套模板。对于不同的部分,我需要从嵌套模板中的数组中获取一个值。我不能使用for循环,因为每个部分在网站上有不同的类别和位置。是否可以将变量传递到嵌套模板中?以下代码简化了我试图实现的目标:

<script id="myBtnTmpl" type="text/x-jsrender">
    <button class="btn">        
        {{:myData.myArray[INDEX_VARIABLE].btnName}}
    </button>
</script>

//  Here I want to use INDEX_VARIABLE = 0
<div class="BigButton">
    {{if myData tmpl="myBtnTmpl"/}}
</div>

//  Here I want to use INDEX_VARIABLE = 1
<div class="MediumButton">
    {{if myData tmpl="myBtnTmpl"/}}
</div>

//  Here I want to use INDEX_VARIABLE = 2
<div class="SmallButton">
    {{if myData tmpl="myBtnTmpl"/}}
</div>

{{:myData.myArray[INDEX_VARIABLE].btnName}
//这里我想使用INDEX_变量=0
{{如果myData tmpl=“myBtnTmpl”/}
//这里我想使用INDEX_VARIABLE=1
{{如果myData tmpl=“myBtnTmpl”/}
//这里我想使用INDEX_VARIABLE=2
{{如果myData tmpl=“myBtnTmpl”/}
另一个问题:在使用嵌套模板时,是否可以在不使用if语法的情况下包含类似{{tmpl=“myBtnTmpl”/}}的嵌套模板


谢谢

是的,您可以在使用
tmpl=“myBtnTmpl”
的标记上设置命名模板参数(无论是
{{if}
标记还是
{{for}
标记):


{{对于myData~arrIndex=0 tmpl=“myBtnTmpl”/}
然后,您可以使用与访问已注册帮助程序相同的方式访问模板参数—在名称后面附加“~”

<button class="btn">        
    {{:myData.myArray[~arrIndex].btnName}}
</button>

{{:myData.myArray[~arrIndex].btnName}
顺便说一句,还可以使用render方法传递变量和辅助函数(除了数据)。我刚刚添加了一个新的显示


因此,这意味着模板可以“参数化”,无论您是从代码中呈现模板,还是以声明方式呈现模板,就像上面的嵌套模板一样。

对于第二个问题,{{For myData tmpl=“#myBtnTmpl”/}}但完全不理解您的原始问题。.无论如何,根据标题,我想你可以在Hi Boris有一个推荐人,谢谢你的快速回复。我按照您的示例,在标记上添加了~arrIndex=0。但是,当我试图在模板中访问变量时,模板似乎找不到该变量。我正在使用最新的提交计数19。它对你有用吗?感谢你仍然支持jsRender,你应该在官方网站上展示一下page@boban984:你的意思是使用JsRender或JsViews显示指向站点的链接?@Borismore是的,我觉得JsRender没有受到足够的重视。我一直在使用它,因为它处于alpha阶段,在JsViews出现之前:)当时没有Angle或Ember,主干网和淘汰赛刚刚开始流行,但jsRender更适合我们的需要,所以我们选择了它。我还在用它。。。查收@BobanStojanovski:谢谢-很高兴听到。当然,我知道有很多人在做非常酷的事情,用JsRender或JsViews制作很酷的站点——但是很难找到他们是谁,或者建立这样的站点列表。还有很多是强大的内部网站,而不是面向公众的网站。这就是为什么到目前为止我还没有尝试建立一个“画廊”。。。(如果您对此有进一步的想法,我很乐意通过电子邮件交流-borismoore@gmail.com)
<button class="btn">        
    {{:myData.myArray[~arrIndex].btnName}}
</button>