KnockoutJS显示输入中的转义字符但保存未转义

时间:2016-12-16 21:45:08

标签: knockout.js escaping input-field

给定输入字段,例如<input data-bind="value: myText"> 使用视图模型self.myText = ko.observable('\t')。如何获取显示\ t而不是选项卡的输入?

文本字段用于决定文件中的分隔符应该是什么样子。如果该字段仅显示选项卡,则用户可能不知道已存在现有值。

如果您在文本字段中键入\ t,则会保存正确的值&#39; \ t&#39;。检索时,它将再次显示标签

我知道当我将默认值设置为&#39; \ \ t&#39;但我不想逃避它,因为我无法确定用户输入是否已转义/未转义,这很可能会导致错误

1 个答案:

答案 0 :(得分:2)

您可以使用JSON.stringify以字符串文字形式获取包含的任何内容。 然后你可以从输出中删除外引号(你可能想要创建一个计算变量,并在你的计算函数内部有myText observable作为依赖项,然后每当用户使用任何escape characters它就完成工作

实施例:https://jsfiddle.net/rnhkv840/24/

 str = "\t";
 self.myText = ko.observable(JSON.stringify(str).replace(/\"/g, ""))