0

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

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

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

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

我想摆脱 decode_entities 函数,或者将它滚动到淘汰赛中,这样它就不会分散在我的代码中。我想通过任何额外的工作来敲除我绑定中的实体。

4

1 回答 1

0

您可以扩展 observable ( http://knockoutjs.com/documentation/extenders.html ),特别查看数字扩展器。

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

于 2013-04-03T13:00:32.117 回答