2012-06-05 1 views
3

Я пытаюсь изучить рули для использования в моем приложении MVC. У меня есть следующие в моем шаблоне:Handlebars and textarea

<div class="control-group"> 
<label class="control-label" for="EmailHtml">Html:</label> 
<div class="controls">   
<textarea id="EmailHtml" name="EmailHtml" cols="36" rows="5"/>   
</div> 
</div> 

А вот JSON:

{"data":{"Results":[{"EmailHtml":"xyz"}],"Name":"Test Business"}} 

После выполнения выше я вижу TextArea с правильной ширины и высоты, но я не вижу данные в нем.

Я также попытался вставить value="{{this.EmailHtml}}", но он все еще не работает.

Как получить текстовое поле для заполнения в моем шаблоне?

ответ

4

Это не должно быть что-то подобное:

<div class="control-group"> 
    <label class="control-label" for="EmailHtml">Html:</label> 
    <div class="controls">   
    <textarea id="EmailHtml" name="EmailHtml" cols="36" rows="5">{{EmailHTML}}</textarea>   
    </div> 
</div> 

Значение <textarea> не в атрибуте value, но находится между тегами. См.: http://www.w3.org/TR/html401/interact/forms.html#h-17.7, http://www.w3.org/TR/html-markup/textarea.html, среди прочих.

+1

Я могу подтвердить @artlung ответ. Я просто столкнулся с тем же вопросом. Когда я использую '', ничего не отображается в поле ввода. Но если я поместил переменную между '' она работает. – AllJs

0

С ручками вы захотите использовать неограниченный помощник, чтобы вы не получили элементы маркера Handlebars внутри вашего текстового поля.

<div class="control-group"> 
    <label class="control-label" for="EmailHtml">Html:</label> 
    <div class="controls">   
     <textarea id="EmailHtml" name="EmailHtml" cols="36" rows="5">{{unbound EmailHTML}}</textarea>   
    </div> 
</div> 

Ссылка: Handlebars basics

0

Предположим, вы оставляете шаблон руль HTML в переменной TPL, и данные в другом varible. И тогда вы сочинительство: -

HandleBars.compile(tpl)(data) 

в шаблоне рул вы написать: -

<div class="control-group"> 
<label class="control-label" for="EmailHtml">Html:</label> 
<div class="controls">   
    <textarea id="EmailHtml" name="EmailHtml" cols="36" rows="5">{{ data.Results.[1].EmailHtml}}</textarea>   
</div> 
</div>