JSRender передает два набора данных в шаблон

У меня есть этот рабочий шаблон:

<script id="UpdateTemplate" type="text/x-jsrender">

<div class="ms-PanelPoultry">
<button class="ms-Button" id="*****" style="visibility: hidden";>
<span class="ms-Button-label">Open Panel</span> 
</button>
<div class="ms-Panel ****">
<div class="ms-Panel-contentInner">
  <p class="ms-Panel-headerText"></p>
  <div class="ms-Panel-content">
    <span class="ms-font-m">
        <span style="color:#006; font-size:large">***</span>
        <hr>
        <form id="*****">
        <table width="100%" border="0">

                {{for}}
                    {{if (#index) % 3 === 0 }}
                     </tr>
                     <tr>
                     <td>
                        <div class="form-group">
                            <label for={{>name}}>{{>label}}</label>
                            <input type={{>type}} class="form-control" id={{>name}}>
                        </div>
                    </td>

                    {{else}}
                        {{if #index === 0 }}
                            <tr>
                                <td>
                                    <div class="form-group">
                                        <label for={{>name}}>{{>label}}</label>
                                        <input type={{>type}} class="form-control" id={{>name}}>
                                    </div>
                                </td>
                        {{else}}
                            <td style="padding-left:15px;">
                                <div class="form-group">
                                    <label for={{>name}}>{{>label}}</label>
                                    <input type={{>type}} class="form-control" id={{>name}}>
                                </div>
                            </td>
                        {{/if}}
                    {{/if}} 
                {{/for}} 
            </table>
            <hr>
            <table>
            <tr>
                <td>
                 <button type="submit" id="EditProductiebedrijfButton" class="btn btn-primary">Submit</button>
                 <button class="btn btn-secondary" type="Cancel" onClick="panelInstance.dismiss();">Cancel</button>
               </td>
            </tr>
        </table>            
    </form>
    </span> 
  </div>
</div>
</div>
</div>
</script>

Он создает форму в MS-панели с этими данными:

var Updatefields = [
        { name: "field1", type: "text", label: "blabla" },
        { name: "field2", type: "text", label: "bla" },
    { name: "field3", type: "date", label: "blablaaa" }
   ];

Это все работает нормально и рендеринг моей формы. Но я хочу передать некоторые дополнительные данные в "заголовок шаблона". Где сейчас "*****". Например, "идентификатор формы".

Как я могу этого достичь?

Также я хотел бы использовать "префикс" для всех моих значений "имя". Например, имя "field3" в качестве идентификатора для поля ввода, я хотел бы иметь "field3Update"

Я попытался сделать несколько строк конкат, но это не удалось софар.

Изменить: последний вопрос был очень простым. Оказалось сделать это: id={{>name}} Обновить

1 ответ

Решение

Либо передайте дополнительные данные в виде данных вместе с массивом fields:

$("#xxx").render({
  fields: fields,
  other: otherData
});

Где другиеДанные

{
  whatever: ...,
  ...
}

а потом написать

<form id="{{>other.whatever...}}...">
  <table...>
    {{for fields}}

или передайте дополнительные данные в качестве помощников ( http://www.jsviews.com/):

$("#xxx").render(fields, otherData, true);

а потом написать

<form id="{{>~whatever...}}...">
  <table...>
    {{for}}
Другие вопросы по тегам