2016-12-16 6 views
0

<input data-bind="value: myText"> のような入力フィールドがある場合は、ビューモデルself.myText = ko.observable('\t')です。タブの代わりに入力を表示するにはどうしたらいいですか?KnockoutJSは入力でエスケープされた文字を表示しますが、エスケープしないで保存します

テキストフィールドは、ファイル内のセパレータの外観を決定するために使用します。フィールドに単にタブが表示されている場合、ユーザーは既に既存の値があることを知らないかもしれません。

\ tをテキストフィールドに入力すると、正しい値 '\ t'が保存されます。これを取得すると再びタブが表示されます

デフォルト値を '\ \ t'に設定しても機能しますが、エスケープしたくないとわかっています入力がエスケープされる/エスケープされない可能性が最も高くなります。

答えて

2

JSON.stringifyを使用して、文字列リテラル形式の出力を得ることができます。 そして、あなたが計算された変数を作成し、依存関係として、あなたの計算された関数内に観察myTextを持っているしたい場合があり、ユーザーが任意のescape charactersを使用する時はいつでも、それは仕事をしていません(出力から外側の引用符を削除することができ

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

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

ありがとう、ちょうど私が必要なもの – Frame91

関連する問題