knockout.js knockoutjs中的自定义组件绑定

k2fxgqgv  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(140)

我正在尝试使用knockoutjs加载自定义组件。
下面是我的HTML:

<div id="mainDiv"></div>

JS:

$("#mainDiv").append("<my-component-name></my-component-name>");

这会在div后面附加<my-component-name></my-component-name>,但不会将我的组件绑定到html。
如果我使用ko.applyBindings();,它会抛出错误"Error: You cannot apply bindings multiple times to the same element."
我找不到绑定有什么问题。

yvgpqqbh

yvgpqqbh1#

视图被更新了,但是绑定没有更新。在第一次应用绑定之后,你需要对HTML中插入的任何元素执行ko.applyBindings操作。在应用绑定之后应用组件是一个糟糕的解决方案。不要把knockout和jQuery或js DOM操作混合在一起,请注意!

5us2dqdw

5us2dqdw2#

这里我得到了解决方案:

var myComp = document.createElement("my-component-name");
$("#mainDiv").append(myComp);
ko.applyBindings({},myComp);

需要ko.applyBinding来绑定html中的组件。

相关问题