Javascript 剔除嵌套组件
我正在尝试使用KO组件绑定来构建组件,但是嵌套组件有一个小问题 场景是我有一个文本输入组件,它有一个标签,也是一个组件Javascript 剔除嵌套组件,javascript,knockout.js,Javascript,Knockout.js,我正在尝试使用KO组件绑定来构建组件,但是嵌套组件有一个小问题 场景是我有一个文本输入组件,它有一个标签,也是一个组件 <div data-bind="component:{name:'text-input', params:{data:$data, parent:$parent}}," class="form-horizontal"> <div class="form-group row"> <div class="col-sm-1">
<div data-bind="component:{name:'text-input', params:{data:$data, parent:$parent}}," class="form-horizontal">
<div class="form-group row">
<div class="col-sm-1">
<div data-bind="component:{name:'label', params:{}}"></div>
</div>
<div class="col-sm-11">
<input type="text" data-bind="value:value" class="form-control" />
</div>
</div>
</div>
标签组件有一个JS和一个模板,模板如下所示
<label data-bind="text:labelText"></label>
但是我得到一个错误,多个绑定(文本和组件)试图控制同一元素的后代绑定
我知道
元素已经绑定到文本输入上下文。现在的问题是如何实现这个场景。组件绑定使用组件的模板填充
的内容,清除其中可能存在的任何内容(因此出现错误)。一个选项是在文本输入
组件的模板中添加另一个组件绑定,这将允许在{componentName:label,componentParams:labelParams}
中传递组件名/组件参数。您还可以查看在淘汰3.3中添加的。实际发现了问题。这是一种愚蠢的错误
我注册的组件是label
,在标签的模板中我有
HTML标记,但由于label
也是一个组件,KO试图将标签的模板绑定到标签标记,这导致了错误和递归循环