这是我的模板:
<tr>
<td>
<table>
<thead>
<th>
<span>Option name:</span>
</th>
</thead>
<tbody data-bind="template: {name: 'optionChoiceTemplate', foreach: choices, templateOptions:{choiceArray: choices} }"></tbody>
</table>
<button data-bind="click: function(){choices.push('');}">Add new</button>
</td>
</tr>
但是当我点击&#34;添加新&#34;按钮,我的视图没有更新,以包含空字符串的新选项。我已经在调试器中检查过将空字符串添加到选项中,并且我确保选择是observableArray,还有什么可能出错?
答案 0 :(得分:0)
我创建了一个小提琴,使用您的HTML显示项目列表,并允许用户以两种方式添加新项目。第一种方法是使用您创建的单击功能。第二种方法是使用点击绑定。
这应该回答你的问题。
答案 1 :(得分:0)
问题在于,当使用带有template
绑定的foreach
绑定的jQuery Templates插件时,空字符串将被视为空值并且不会呈现。
您可以通过使用对象{text: ''}
和绑定text
或者通过推送除空字符串之外的其他内容(如单个空格)来解决此问题。
或者,如果您能够移动到Knockout 2.0并使用本机模板,那么您的空字符串项目将正确呈现。