5

淘汰赛,

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

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

谢谢,文尼

4

1 回答 1

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 };
    }
};
于 2013-01-09T21:27:02.777 回答