Mvvm js如何防止模型更新模板。

Mvvm js如何防止模型更新模板。,mvvm,knockout.js,preserve,Mvvm,Knockout.js,Preserve,嗨,我有以下字段 <span id="myText" data=bind="text: name">default value</span> 但是,我不希望值“default value”更改。我想保留原值 我该怎么做呢 一个选项是使用自定义绑定从元素的当前innerText填充您的observable 比如: ko.bindingHandlers.textWithInit = { init: function(element, valueAccessor) {

嗨,我有以下字段

<span id="myText" data=bind="text: name">default value</span>
但是,我不希望值“default value”更改。我想保留原值


我该怎么做呢

一个选项是使用自定义绑定从元素的当前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
};
您还可以在此基础上添加更多错误处理(处理可观察对象和非可观察对象等)


示例:

是否保留它,直到更改名称的值?您需要一个计算值,或者一个特殊的绑定,该绑定读取“默认值”,直到其源为非空。无法阻止模板按照您要求的方式更新。
ko.bindingHandlers.textWithInit = {
    init: function(element, valueAccessor) {
        var observable = valueAccessor();
        observable("innerText" in element ? element.innerText : element.textContent);   
    },
    update: ko.bindingHandlers.text.update
};