0

嗨,我有以下字段

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

我希望能够用 like 初始化值

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

但是,我不希望值“默认值”改变。我想保留原始值。

我该怎么做呢?

4

1 回答 1

1

一种选择是使用自定义绑定从元素的当前 innerText 填充您的 observable。

就像是:

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 回答