これが必要な場合は、カスタムバインディングを使用してこれを非常に簡単に行うことができます。
これは、要素のinnerTextを使用して既存のオブザーバブルを設定するか、存在しない場合はオブザーバブルを作成するバインディングです。
ko.bindingHandlers.textWithInit = {
init: function(element, valueAccessor, allBindingsAccessor, data) {
var property = valueAccessor(),
content = element.innerText || element.textContent;
//create the observable, if it doesn't exist
if (!ko.isWriteableObservable(data[property])) {
data[property] = ko.observable();
}
data[property](content);
ko.applyBindingsToNode(element, { text: data[property] });
}
};
次のように使用します。
<div data-bind="textWithInit: 'email_sended'"></div>
バインディングはまだ存在していないオブザーバブルをサポートしているため、プロパティ名は引用符で囲まれていることに注意してください
サンプル: http: //jsfiddle.net/rniemeyer/kKBBj/