0

こんにちは私は次のフィールドを持っています

<span id="myText" data=bind="text: name">default value</span>

次のように値を初期化できるようにしたい

var model = {
   name = ko.observable("");
}
ko.apply(model);

ただし、「デフォルト値」の値を変更したくありません。元の値を保持したい。

どうすればこれを行うことができますか?

4

1 に答える 1

1

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/

于 2012-11-05T17:35:10.687 に答える