knockoutjs 中的自定义组件绑定

custom component binding in knockoutjs

我正在尝试使用 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."

我找不到绑定有什么问题。

视图已更新,但绑定未更新。在第一次应用绑定后,您需要对 HTML 中插入的任何元素执行 ko.applyBindings。在应用绑定后应用组件是一个糟糕的解决方案。并且不要将敲除与 jQuery 或 js DOM 操作混合,PLEEEASSE!

这里我得到了解决方案:

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

Ko.applyBinding 需要在 html 中绑定我的组件。