2014-09-05 5 views
5

В настоящее время я работаю над долгосрочным веб-приложением 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> 

И это работает, но:

  1. компоненты сами являются слишком сложным, много контекста s колдовской, что делает осмыслении компонент живой ад
  2. Узор порвала с довольно много обновлений

Так уже никто пытался сделать то же самое еще? И/или нашел шаблон, который работает для этого?

+0

Очень хороший вопрос! –

+0

Вы считали, что используете реакцию? – TDmoneybanks

ответ

0

В этом проекте есть проект: UI Harness, от создателей Respond.ly. В настоящее время это личное. Вы можете узнать об этом от Phil Cockfield’s talk at the July 2014 Devshop (YouTube link). Из видео разговора вы должны получить некоторые идеи о том, как структурировать свои собственные компоненты, если вы не хотите ждать выпуска UI Harness.

+0

Проекты на github открыты уже на простом сайте .com, который закрыт (https://github.com/Respondly/meteor-ui-harness) Но это решение, хотя выглядит многообещающим, не совсем то, что я находясь в поиске. –

 Смежные вопросы

  • Нет связанных вопросов^_^