В настоящее время я работаю над долгосрочным веб-приложением Meteor. Где со временем разработчики придут и уйдут. Таким образом, чтобы все приложение сохраняло тот же внешний вид, я хотел бы иметь возможность создавать стандартные компоненты с системой шаблонов метеор. Таким образом, шаблоны функций не должны содержать какой-либо html, что бы все это содержалось в шаблонах компонентов.Шаблон для создания повторно используемых компонентов
Я пробовал meteor-polymer
, но это просто сбивает мое приложение, и мне кажется, что я должен использовать систему temterating для метеорита вместо добавления другой библиотеки. Кроме того, полимер в значительной степени зависит от шаблона тега, Meteor также зависит, так что я не совсем уверен,
В основном то, что я хочу сделать в моих шаблонах это:
<template name="someRandomFeature">
{{#_RadioGroup name="dataInput" context=. formData=formData}}
{{#_setLabel}}Test set{{/_setLabel}}
{{#_addRow}}
{{assignValues value="random"}}
{{#_setCaption}}Random{/_setCaption}}
{{/_addRow}}
{{#_addRow}}
{{assignValues value="expression"}}
{{#_setCaption}}Expression: {{_TextInput name="testSetExpression" inline=true}}{{/_setCaption}}
{{/_addRow}}
{{/_RadioGroup}}
{{#_FormGroup}}
{{#_Config}}
{{assignValues numRows=2}}
{{/_Config}}
{{#_setRow 0}}
{{#_SetLabel}}Number of tests{{/_SetLabel}}
{{#_setStageContent}}
{{> _DropDown name="numberOfTests" items=numberOfTestsList formData=formData}}
{{/_setStageContent}}
{{/_setRow}}
{{#_setRow 1}}
{{#_SetLabel}}To email address{{/_SetLabel}}
{{#_setStageContent}}
{{> _TextInput name='respondentSelection' formData=formData}}
<span class="help-block text-left">Send all test mails to this email adress</span>
{{/_setStageContent}}
{{/_setRow}}
{{/_FormGroup}}
</template>
Пример компонента:
<template name="_FormGroup">
{{#with numRows=0 context=. formdata=formdata stage='config'}}
{{#with execBlock UI.contentBlock}}
<div class="form-group">
{{#each getRows}}
{{#unless ../disableLabels}}
<label class="control-label">
{{#with _constructStageList 1='rows' 2=_id 3='label'}}
{{> UI.contentBlock stage=this stageContext=../../context}}
{{/with}}
</label>
{{/unless}}
<div class="row{{#unless ../disableLabels}} controls{{/unless}}">
<div class="{{#if ../fullWidth}}col-md-16{{else}}col-md-8{{/if}}">
{{#with _constructStageList 1='rows' 2=_id 3='content'}}
{{> UI.contentBlock stage=this stageContext=../../context}}
{{/with}}
</div>
</div>
{{/each}}
</div>
{{/with}}
{{/with}}
</template>
И это работает, но:
- компоненты сами являются слишком сложным, много контекста s колдовской, что делает осмыслении компонент живой ад
- Узор порвала с довольно много обновлений
Так уже никто пытался сделать то же самое еще? И/или нашел шаблон, который работает для этого?
Очень хороший вопрос! –
Вы считали, что используете реакцию? – TDmoneybanks