Knockout:解码输入字段中的html实体

时间:2013-04-03 12:56:11

标签: javascript knockout.js html-entities

我有一个允许用户提交和保存HTML的网络应用。用户键入html s /他想要用于几个不同的字段。一些是文本输入元素,一些是textarea元素。当用户提交他们的标记时,我将特殊字符转换为html实体。

当用户回来编辑他们提交的html时,我会从数据库中获取他们的条目,并使用knockout预填充表单。为了在键入时显示html,我在绑定到我的视图模型的任何数据上调用一个函数来删除将任何实体更改回&符号和括号以及所有有趣的东西。

var viewModel = {
property : ko.observable(decode_entities(varContainingUserInput)),
....
}

我知道在绑定到大多数html元素(如div或p标签)时,您可以在打印之前使用knockouts html绑定来解码实体。这减轻了调用decode_entities函数的需要。但是,这不适用于输入字段。

我想摆脱decode_entities函数,或者将它滚动到淘汰赛中,因此它不会分散在我的整个代码中。我想通过任何额外的工作来解决我的绑定中的实体。

1 个答案:

答案 0 :(得分:0)

你可以扩展observable(http://knockoutjs.com/documentation/extenders.html) 请特别注意数字扩展器。

你也可以使用自定义绑定,但我认为扩展observable对于这种情况将是更好的解决方案。