これが私のhtmlを構築したい方法です
<a href="#">John <i class="person"></i></a>
そして、ノックアウト.jsを使用すると、これが私が行ったことです。
<a data-bind="text:name"><i class="person"></i></a>
推測できるように、アンカーの要素全体 (テキストだけでなく) がテキスト バインディングのために削除されます。この場合、アンカー内のタグ全体が削除されます。私の解決策は以下にあります。
<a data-bind="html: name() + '<i class="person"></i>'"></a>
data-bind での html との string concat は解決策ですが、2 つの大きな欠点があります。「name」プロパティは安全ではないため、html インジェクションを取得できます。data-bind 属性内に sedondly で html を書き込むのは最悪です。
もう一つの解決策は.
<a href="#"><span data-bind="text:name"></span><i class="person"></i></a>
ただの解決策として、新しい html マークアップを導入していることは知っています。それは私が見つけた最高のものです。
knockout.js のこの問題に対するよく知られた解決策は何ですか?
その中の要素全体ではなく、テキストだけを更新して、パラメーターを介してテキストバインディングに指定できますか?
またはより良い解決策?