gpt4 book ai didi

knockout.js - 使用嵌套的 DIV 嵌套多个 VM

转载 作者:行者123 更新时间:2023-12-04 19:11:48 26 4
gpt4 key购买 nike

我遇到嵌套的 div 不会与 VM 绑定(bind)。有什么想法吗?我正在尝试以下方法,但它打破了任何想法?

<div id="div1">
<div id="div2">

</div>
</div>

如果我尝试这很好用:
<div id="div1">
</div>

<div id="div2">
</div>

Javascript:
ko.applyBindings(vm1, document.getElementById('div1'));
ko.applyBindings(vm2, document.getElementById('div2'));

有任何想法吗?

最佳答案

当你绑定(bind) div1它将绑定(bind)所有内容,包括 div2 中的内容.当你绑定(bind) div2它将再次绑定(bind)元素。这不是一个好的情况,因为元素将附加多个事件处理程序。否则,其中一个 applyBindings 可能会出错,因为元素不希望绑定(bind)到不同的 View 模型。

这里的文章列出了一种保护内部元素不受外部调用约束的方法:http://www.knockmeout.net/2012/05/quick-tip-skip-binding.html

另一种选择是使用单一 View 模型,如:

var viewModel = {
vm1: vm1,
vm2: vm2
};

ko.applyBindings(viewModel);

然后,像这样绑定(bind):
<div id="div1" data-bind="with: vm1">
<div id="div2" data-bind="with: $root.vm2">

</div>
</div>

关于knockout.js - 使用嵌套的 DIV 嵌套多个 VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14270259/

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