Knockoutjs多选列表不渲染HTML
问题描述:
比方说,我在列表五行,respectivlyKnockoutjs多选列表不渲染HTML
item1
item2
item3
item4
item5
如何才能让这个选择框将呈现HTML并显示空白需要的地方。
选择框本身就是如下。
<select id="formSectors" multiple size="5" class="form-control" data-bind="options: sectors, optionsText: 'Name', selectedOptions: newForm().Sectors"></select>
我已经试过的东西,一个人建议用data-bind="foreach: sectors"
和<option data-bind="html: Name"></option>
,但是这导致了newForm().Sectors
有文本值,而不是对象存在,即使值正确呈现。
我已经搜索了这一点,似乎没有正确的方法来使html呈现空格。 (即使当我控制台日志,它清楚地显示空白盈,但不显示出来多选名单上。
有没有人认为应该是一个很好的解决方案呢?
最后的手段可能是写它自己的选项结合,呈现HTML部分以及使用数据绑定HTML。
EDIT1 //似乎如果我点击右键并选择编辑为html对铬,它实际上呈现&
为&
,这会导致不正确html在这个意义上讲,这就是它没有渲染的原因。
答
经过数小时和数小时的测试后,我发现用\t
代替
确实会在字符串前添加空格,但再次,多选框并不会显示这些空格。
我所做的是您必须创建一个自定义的optionsText函数来替换knockoutjs的默认可视化工具。
我做到了这样:
<select id="formSectors"
multiple
size="5"
class="form-control"
data-bind="options: sectors,
optionsText: function(item){return item.Name.split('\t').join(' ')},
selectedOptions: newForm().Sectors">
</select>
还几乎拆分字符串在\t
以及适当的HTML代替他们的空间,从而在一个漂亮的列表。
这真的很有趣..感谢分享! – Ray