Knockoutのテキストバインディングを使用すると、複数のスペースが1つに折りたたまれるようになります。例えば:
<textarea data-bind="value: Notes"></textarea>
<p data-bind="text: Notes"></p>
function VM(){this.Notes = ko.observable(); }
var vm = new VM();
ko.applyBindings(vm);
これを実証するためのフィドルは次のとおりです:http://jsfiddle.net/9rtL5/
jsfiddleでは、Firefox、Chrome、IE9でスペースが圧縮されていることがわかりました。不思議なことに、私のアプリ内ではIE9はそれらを圧縮しませんが、他のものは圧縮します。
私の理解では、KnockoutはHTMLテキストノードを使用して値をレンダリングします。テキストノードを作成するときにスペースを保持することについて、この関連する質問を見つけました。
Knockoutは変換スペースを適切に処理する必要がありますか?これにカスタムバインディングハンドラーを使用したくありません。
私は実際にselect内の表示テキストのコンテキストでこれに遭遇し、その問題をデバッグしているときに、単純なテキストバインディングにも関連していることを発見しました。選択した問題は同じだと思います。