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}}