こんにちは私は次のフィールドを持っています
<span id="myText" data=bind="text: name">default value</span>
次のように値を初期化できるようにしたい
var model = {
name = ko.observable("");
}
ko.apply(model);
ただし、「デフォルト値」の値を変更したくありません。元の値を保持したい。
どうすればこれを行うことができますか?
こんにちは私は次のフィールドを持っています
<span id="myText" data=bind="text: name">default value</span>
次のように値を初期化できるようにしたい
var model = {
name = ko.observable("");
}
ko.apply(model);
ただし、「デフォルト値」の値を変更したくありません。元の値を保持したい。
どうすればこれを行うことができますか?
1つのオプションは、カスタムバインディングを使用して、要素の現在のinnerTextからオブザーバブルにデータを入力することです。
何かのようなもの:
ko.bindingHandlers.textWithInit = {
init: function(element, valueAccessor) {
var observable = valueAccessor();
observable("innerText" in element ? element.innerText : element.textContent);
},
update: ko.bindingHandlers.text.update
};
これにさらにエラー処理を追加することもできます(オブザーバブルと非オブザーバブルの処理など)。
サンプル: http: //jsfiddle.net/rniemeyer/x4XJW/