Javascript 动态组件未正确绑定

Javascript 动态组件未正确绑定,javascript,angular,kendo-ui-angular2,Javascript,Angular,Kendo Ui Angular2,在Angular 2应用程序中,我们使用剑道的组合框组件。该组件被包装到运行时动态创建的组件中。创建代码非常简单: let factory = this.resolver .resolveComponentFactory(ComboboxComponent); nextTo.createComponent(factory); nextTo变量表示Angular必须创建组件的位置 @ViewChild('container', { read: ViewContainerRef

在Angular 2应用程序中,我们使用剑道的组合框组件。该组件被包装到运行时动态创建的组件中。创建代码非常简单:

let factory = this.resolver
        .resolveComponentFactory(ComboboxComponent);

nextTo.createComponent(factory);
nextTo
变量表示Angular必须创建组件的位置

@ViewChild('container', { read: ViewContainerRef })
container: ViewContainerRef;
container
变量表示HTML模板中的
div

NB:组件是在
ngAfterViewInit
事件期间创建的。在创建过程中不会引发任何错误

剑道组件已正确实例化和初始化,但当我们在创建后影响数据时,该组件似乎无法识别绑定,并且什么也不做。有什么想法吗

组件的HTML:

<kendo-combobox [data]="listItems"></kendo-combobox>

打字稿:

@Component({
    templateUrl: `combobox.component.html`,
    selector: 'combobox',
    styleUrls: [
        'combobox.component.css'
    ]
})
export class ComboboxComponent extends FieldComponent {
    public listItems: Array<string> = ["X-Small", "Small", "Medium", "Large", "X-Large", "2X-Large"];
}
@组件({
templateUrl:`combobox.component.html`,
选择器:“组合框”,
样式URL:[
'combobox.component.css'
]
})
导出类ComboboxComponent扩展FieldComponent{
公共列表项:数组=[“X-Small”、“Small”、“Medium”、“Large”、“X-Large”、“2X-Large”];
}
NB2:
FieldComponent
是一个抽象类,我们用于所有组件的全局操作

EDIT1:我终于找到了问题所在,但我说不出哪里出了问题。当我检查DOM时,我可以看到一个
被隐藏,这是包含所有数据的组合框。那么,为什么我要显示第二个组合框而没有数据呢


我怀疑在这种情况下不会触发组件的更改检测。
createComponent
返回具有与该组件关联的更改检测器的。创建动态组件后,可以尝试调用该ChangeDetectorRef

我找到了导致这种奇怪行为的原因。由于项目刚开始,我们使用Kendo JQuery作为组件,并使用
Kendo.all.js
。我真的不知道为什么,但似乎
kendo.all.js
插入了新Angle组件的
kendo组合框
HTML模板,它注入了一些不必要的HTML,导致了奇怪的行为。

感谢您的回复!我已经试过了,但没有成功。我想知道我为什么要这么做!你能演示一下这个场景吗?我曾尝试在中复制这种行为,但似乎都奏效了。也许我遗漏了什么。嘿,经过调查我有了线索。看到我的编辑在我的帖子,谢谢@Christophen Gigax我想不出是什么原因。你能修改plunkr以便它复制行为吗?这将帮助我找到原因。谢谢我已经找到了副作用的原因,我将发布一个回复。这是由于我们的整合。web组件和Angular对自定义标记/组件选择器使用相同的名称。是的,我知道;-)也许您应该在文档或其他地方通知这个丑陋的问题?我认为像我们这样想要迁移组件的类似项目将面临同样的问题…实际上Web组件支持已经从*.all包中删除。升级到较新版本的脚本应删除此行为。