如何使用html绑定呈现处于编码状态的html?目前我拥有的只是给我文本而不是渲染的html。 http://jsbin.com/wudopeseloya/1/edit
var ViewModel = function() {
this.myHtml = "<h1>hello</h1>";
};
ko.applyBindings(new ViewModel());
和
<div data-bind="html:myHtml"></div>
答案 0 :(得分:4)
首先确定如何解码html字符串。这里列出了许多选项:HTML Entity Decode
假设您有一个名为decodeEntities
的全局函数,您可以提供一个只对myHtml执行此解码的计算属性。
var ViewModel = function() {
this.myHtml = "<h1>hello</h1>";
this.decodedHtml = ko.computed(function(){
return decodeEntities(this.myHtml);
});
};
请注意,由于myHtml不是可观察的,因此,无论您之后分配给myHtml的值是什么,decodeHtml将始终解析为相同的值并且永远不会触发更新(除非手动强制执行)。
实现相同结果的其他方法是解码myHtml内联或创建一个现场解码的自定义绑定。