Knockout optionsText已编码

时间:2014-01-21 12:59:09

标签: javascript jquery html knockout.js

我正在尝试根据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 += "&nbsp;";
        }
        value += data.Text;
        return value;
    }
};
ko.applyBindings(viewModel)

2 个答案:

答案 0 :(得分:9)

"&nbsp;"替换为"\xA0"The hexadecimal representation非破碎空格字符。)

答案 1 :(得分:1)

答案是使用空格的实际字符而不是HTML实体。获得不间断的空间类型Alt+255。只需在代码中代替&nbsp;即可。它看起来像一个普通的空间,但会显示为一个不间断的空间:

实例:http://jsfiddle.net/jLbct/1/