KnockoutJS 在输入中显示转义字符但保存未转义
KnockoutJS show escaped characters in input but save not escaped
给定一个输入字段,例如 <input data-bind="value: myText">
使用视图模型 self.myText = ko.observable('\t')
。如何让输入显示 \t 而不是制表符?
文本字段用于决定文件中的分隔符应该是什么样子。如果该字段只显示一个选项卡,用户可能不知道已经存在一个值。
如果您在文本字段中输入 \t,它会保存正确的值“\t”。检索时,它将再次显示选项卡
我知道当我将默认值设置为 '\ \ t' 时它会起作用,但我不想转义它,因为我无法确定用户输入是否被 escaped/not 转义这很可能会导致错误
您可以使用 JSON.stringify
以字符串文字形式获取输出中包含的任何内容。
然后你可以从输出中删除外部引号(你可能想创建一个计算变量并在你的计算函数中将 myText
observable 作为依赖项,然后每当用户使用任何 escape characters
它就会完成工作.
示例:https://jsfiddle.net/rnhkv840/24/
str = "\t";
self.myText = ko.observable(JSON.stringify(str).replace(/\"/g, ""))
给定一个输入字段,例如 <input data-bind="value: myText">
使用视图模型 self.myText = ko.observable('\t')
。如何让输入显示 \t 而不是制表符?
文本字段用于决定文件中的分隔符应该是什么样子。如果该字段只显示一个选项卡,用户可能不知道已经存在一个值。
如果您在文本字段中输入 \t,它会保存正确的值“\t”。检索时,它将再次显示选项卡
我知道当我将默认值设置为 '\ \ t' 时它会起作用,但我不想转义它,因为我无法确定用户输入是否被 escaped/not 转义这很可能会导致错误
您可以使用 JSON.stringify
以字符串文字形式获取输出中包含的任何内容。
然后你可以从输出中删除外部引号(你可能想创建一个计算变量并在你的计算函数中将 myText
observable 作为依赖项,然后每当用户使用任何 escape characters
它就会完成工作.
示例:https://jsfiddle.net/rnhkv840/24/
str = "\t";
self.myText = ko.observable(JSON.stringify(str).replace(/\"/g, ""))