在knockout js的optionsText绑定中编码HTML

时间:2015-04-29 11:45:36

标签: javascript jquery knockout.js

我正在尝试使用选项绑定在knockout js中创建一个带有html编码选项的下拉列表。

如何解码从绑定到optionsText绑定的函数返回的文本。

<select data-bind="options: items, optionsText: function(item){ return "decoded text"}"></select>

通常,我需要一个带有编码的html字符串并返回已解码文本的函数。

即。该函数采用类似

的方式
  

blah blah balh <sup>TM</sup>

并返回

  

blah blah blah™

1 个答案:

答案 0 :(得分:2)

这是不可能的。 option tag不允许将其他标记作为内容,仅限于#34; Normal character data&#34;。这意味着您可以使用实体,例如&#8482;&trade;(呈现为&#34;™&#34;),这应该适用于您的具体示例。

为了完整起见,对于Knockout部分,如果你 尝试了之后的事情,你有两个选择:

  • 利用foreach绑定并使用option绑定内容创建您自己的html元素(而不是text绑定内容)
  • 利用optionsAfterRender绑定来调整渲染的选项元素(感谢@CaseyWebb在评论中注明此选项)