Javascript 剔除嵌套组件

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">

我正在尝试使用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:'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试图将标签的模板绑定到标签标记,这导致了错误和递归循环