gpt4 book ai didi

data-binding - 如何停止对子元素评估的 knockout.js 绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 13:20:24 24 4
gpt4 key购买 nike

当您调用 ko.applyBinding(viewModel, "divId") 时,使用 knockout 它通过您绑定(bind)到的元素的子元素(“divId”)进行递归绑定(bind)。我想在子节点处停止此评估。有没有办法做到这一点?

之所以...

我想将整个页面绑定(bind)到导航 View 模型,这将处理基本布局和...微笑...导航。在各个页面上,我想将某些区域绑定(bind)到不是导航 View 模型属性的不同 View 模型。目前,如果我这样做,我会收到“无法解析绑定(bind)”错误,因为导航 View 模型没有所需的属性。如果我可以阻止绑定(bind)沿着 dom 走,我可以单独绑定(bind)这些项目。

最佳答案

您可以通过多种方式进行此操作。通常,您会将多个“子” View 模型添加到主视图模型,然后使用 with使用实际 View 模型绑定(bind)各个区域以绑定(bind)它们。

从技术上讲,您可以按照自己的意愿去做。您可以创建一个自定义绑定(bind),告诉 KO 它将自己处理绑定(bind)子项。它看起来像:

ko.bindingHandlers.stopBindings = {
init: function() {
return { controlsDescendantBindings: true };
}
};

当你把它放在一个元素上时,KO 会忽略子元素。然后,您可以使用不同的 View 模型对该元素的子元素调用 ko.applyBindings。

sample : http://jsfiddle.net/rniemeyer/tWJxh/

通常,您会使用 with 在主视图模型下使用多个 View 模型。捆绑。

关于data-binding - 如何停止对子元素评估的 knockout.js 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9254632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com