knockout.js如何防止模型更新模板。

时间:2012-11-05 16:43:03

标签: mvvm knockout.js preserve

您好我有以下字段

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

我希望能够使用like

初始化值
var model = {
   name = ko.observable("");
}
ko.apply(model);

但是,我不希望值“默认值”发生变化。我想保留原始价值。

我怎么能这样做?

1 个答案:

答案 0 :(得分: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
};

你也可以为此添加更多错误处理(处理observables和非obseravbles等)。

示例:http://jsfiddle.net/rniemeyer/x4XJW/