如果这是必要的,那么您可以使用自定义绑定轻松完成此操作。
这是一个绑定,它将使用元素的 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/