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 中绑定我的组件。
我正在尝试使用 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 中绑定我的组件。