跨度未解码的 HTML 是 Knockout.js 还是 Jquery 移动服务器?

Posted

技术标签:

【中文标题】跨度未解码的 HTML 是 Knockout.js 还是 Jquery 移动服务器?【英文标题】:Html not decoded in span is it Knockout.js or Jquery mobile doing things? 【发布时间】:2014-07-11 15:44:40 【问题描述】:

我正在尝试在使用 Jquery Mobile UI 和 knockout.js 的页面上将具有特殊字符 ' (') 的警告消息显示为文本。文本由 javascript 函数返回并在 .NET 端进行编码。问题是它被解释为文字,而JSfiddle 中的完全相同的html 被解释为'

又是 Knockout.js 还是 JQuery Mobile,还是我在这里遗漏了什么?

我在下面的屏幕截图中打印了返回 Chrome 开发工具中的值的函数,你也可以看到 html。

【问题讨论】:

我认为问题在于您正在绑定文本而不是 html。像这样jsfiddle.net/Spokey/Vdu9d/1。我不知道 knockout.js,但我看到有一种方法可以绑定 html。 @Spokey - 将其发布为答案 @Spokey 如果你想使用它,我会淘汰你的fiddle @Spokey 这是淘汰赛,请将其发布为答案。谢谢。 【参考方案1】:

问题是你要追加的字符串是一个HTML实体,如果你append it as text它就不会被渲染

感谢@Origineil 为fiddle 提供淘汰赛证明了同样的事情。

<span data-bind="text: data"></span><br/> <!-- &#39; -->
<span data-bind="html: data"></span>      <!-- ' -->

还有脚本

var vm = 
    data: ko.observable('3 Optional Activities aren&#39;t Done')
;
ko.applyBindings(vm)

【讨论】:

以上是关于跨度未解码的 HTML 是 Knockout.js 还是 Jquery 移动服务器?的主要内容,如果未能解决你的问题,请参考以下文章

knockout.js 数据中的嵌套 foreach 显示但未正确显示

knockout.js中的队列计时器

knockout.js 主视图模型中的一个视图模型(添加项目变得未定义)

多视图模型破坏了 knockout.js

knockout.js入门

knockout.js - 数据绑定文本默认值