Knockouters,防止「綁定」去除DOM元素(Knockout.js)
我已經開始依賴綁定來建立上下文嵌套。雖然我喜歡KO在某些情況下基於綁定元素的狀態來操縱DOM的方式,但有時候我只是希望在不去除DOM的情況下實現綁定。
有誰知道是否有可能防止單個元素綁定級別上的DOM操作嗎?
由於敲除的, Vinney
Knockouters,防止「綁定」去除DOM元素(Knockout.js)
我已經開始依賴綁定來建立上下文嵌套。雖然我喜歡KO在某些情況下基於綁定元素的狀態來操縱DOM的方式,但有時候我只是希望在不去除DOM的情況下實現綁定。
有誰知道是否有可能防止單個元素綁定級別上的DOM操作嗎?
由於敲除的, Vinney
版2.2+不會清除時with
最初綁定到一個對象(或其它truthy值)的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 };
}
};
感謝您的輸入!有趣的綁定處理程序。我很想知道你用這個解決了什麼問題......謹慎解釋? –
我想要一個綁定,只做了沒有任何模板功能的上下文更改。所以就是這樣。 –
我明白了。但是,您的視圖功能決定了您的模型。您是否考慮允許觀察對象並解開它以獲得相同的結果?我不是在挑戰你的設計,而是在理解我自己想念的東西。 –
什麼版本的Knockout你有?它應該固定在2.2 –
的確,我有2.1.0。我會研究更新。但是,你可以擴展「固定」的含義嗎?一個添加的配置/參數?另外,請回答我的答案,以便我可以在適當的情況下接受您的回答。 –
@Slawek我對你的評論有點困惑。我認爲實際的DOM操作是一個Knockout錯誤。儘管如此,文檔另有說明。那麼「固定」是什麼意思?是否有一些DOM操作實際發生錯誤的實例?如果是這樣,你能解釋一下嗎?我的對象是非null,但它包含的所有成員都是null。這是否應該觸發刪除相關元素?謝謝! –