把手和textarea

时间:2012-06-05 20:56:37

标签: javascript jquery asp.net-mvc handlebars.js mustache

我正在尝试学习用于我的MVC应用程序的把手。我的模板中有以下内容:

<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}}",但它仍无效。

如何在我的模板中填充textarea?

3 个答案:

答案 0 :(得分: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.7http://www.w3.org/TR/html-markup/textarea.html等。

答案 1 :(得分:0)

使用Handlebars,您将需要使用无界帮助器,这样就不会在textarea中获得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

答案 2 :(得分:0)

假设您将把手html模板保存在变量tpl中,并将数据保存在另一个变量中。然后你正在写作: -

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>