jQuery jsrender.js和jquery.views.js中的父循环的itemNumber值

iMa*_*ria 2 jquery jquery-templates

我使用jsrender.js和jquery.views.js使用jQuery模板http://github.com/BorisMoore/jsviews

我有1个嵌套循环和内部嵌套循环我想要get itemNumber或其他一些值.例如:

模板:

{{#each ImageQuestions}}
  <div id="image-{{=$view.itemNumber}}">
  {{#each GroupImagesRepeatation}}
    <input type="radio" name="{{=$view.parent.data.QuestionID}}" value="{{=$view.itemNumber}}" />
  {{/each}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)

阵:

var Questions = {
        ImageQuestions: [
                            { 
                                QuestionID: 1,
                                GroupImagesRepeatation: [1, 2, 3, 4]
                            },
                            {
                                QuestionID: 2,
                                GroupImagesRepeatation: [1, 2, 3, 4, 5, 6]
                            }
                        ]
    };
Run Code Online (Sandbox Code Playgroud)

查询:{{=$view.parent.data.QuestionID}}是我想要正常工作的.我需要为每个嵌套循环的radioList提供唯一的名称.

请帮助我

Bor*_*ore 7

之所以{{=$view.parent.data.QuestionID}}没有返回正确的值,是因为你需要通过两个母公司层面加强:{{=$view.parent.parent.data.QuestionID}}.直接父级具有GroupImagesRepeatation数组作为数据.它的父元素是外部每个循环的数据项 - 它有一个questionID属性.

您可以使用更紧凑的语法:

{{#each ImageQuestions}}
  <div id="image-{{=$itemNumber}}">
    {{#each GroupImagesRepeatation}}
      <input type="radio" name="{{=$parent.parent.data.QuestionID}}" value="  {{=$itemNumber}}" />
    {{/each}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)

提示 - 用于在已编译的模板中进行调试:设置$.views.allowCode = true;然后{{*debugger;}}在模板中添加,例如{{*debugger;}}<input type="radio" ....