如果我用 textarea 将 div 替换为 contentEditable="true",我可以获得双向绑定,但我不喜欢文本区域在页面上的行为方式。是否可以将任何内容添加到模板中以使其正常工作,或者可以使用自定义标签?这里的 div 被填满并且是可编辑的,但它不会写回任何更改的内容。
如果我用丑陋的文本区域替换它,它工作正常。
我确信我可以用隐藏的输入和一些 jquery 破解它,但我宁愿不必这样做。
<script id="lcaSummaryBodyTemplate" type="text/x-jsrender">
{^{for items}}
<div class="bodyItem">
<div class="colDec">
<p>{{>title}}</p>
{^{if type == "select"}}
<select data-link="val">
{^{for options}}
<option value="{{:value}}">{{:text}}</option>
{{/for}}
</select>
{{else}}
{^{if type == "date"}}
<input data-link="val" class="date" />
{{else}}
<div data-link="val" contentEditable="true"></div>
{{/if}}
{{/if}}
</div>
<div class="colHist">
<p>{{>title}}</p>
{{if type == "date"}}
<div class="date" data-link="histVal"></div>
{{else}}
<div>{{>histVal}}</div>
{{/if}}
</div>
</div>
{{/for}}
</script>