防止"with"绑定删除DOM元素(Knockout.js)

Vin*_*lly 5 dom knockout.js

Knockouters,

我已经开始依赖于with绑定来建立上下文嵌套.虽然我喜欢KO在某些情况下根据绑定元素的状态操纵DOM的方式,但有时候我只想要在不删除DOM的情况下绑定含义.

有谁知道是否有可能在单个元素绑定级别上阻止DOM操作?

谢谢,温妮

Mic*_*est 5

with最初绑定到对象(或其他真实值)时,Knockout的2.2 版本将不会清除DOM元素.或者,您可以使用withlight我之前放在一起的绑定.它只会绑定到一个对象(不是一个可观察的对象).

ko.bindingHandlers['withlight'] = {
    'init': function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        var bindingValue = valueAccessor();
        if (typeof bindingValue != 'object' || bindingValue === null)
            throw new Error('withlight must be used with an object');
        var innerContext = bindingContext['createChildContext'](bindingValue);
        ko.applyBindingsToDescendants(innerContext, element);
        return { 'controlsDescendantBindings': true };
    }
};
Run Code Online (Sandbox Code Playgroud)