我正在尝试根据this解决方案创建一个html层次结构选择并使用knockout
但是,knockout会对我返回的字符串值进行编码。
如何解码从函数返回的文本?
jsFiddle示例
HTML:
<select data-bind="options: items, optionsText: getOptionText"></select>
使用Javascript:
var viewModel = {
items: ko.observableArray([
{ Text: "Item 1", level: 1 },
{ Text: "Item 2", level: 2 },
{ Text: "Item 3", level: 3 },
{ Text: "Item 4", level: 4 }
]),
getOptionText: function(data) {
var value = "";
for (var i = 1; i <= (data.level - 1) * 2; i++) {
value += " ";
}
value += data.Text;
return value;
}
};
ko.applyBindings(viewModel)
答案 0 :(得分:9)
将" "
替换为"\xA0"
(The hexadecimal representation非破碎空格字符。)
答案 1 :(得分:1)
答案是使用空格的实际字符而不是HTML实体。获得不间断的空间类型Alt+255
。只需在代码中代替
即可。它看起来像一个普通的空间,但会显示为一个不间断的空间: