我有一个绑定可包含选项的对象模型的指令。如果它应用于支持选项的小部件,我希望它自动填充选项。但是,我最接近的是将选项作为指令主机的兄弟插入。
目前功能正常,但ngFor在逻辑上是不必要的:
<dropdown [ionSetting]="name" #modeSetting="ionSetting">
<option *ngFor="let option of modeSetting.options" [value]="option">{{ option }}</option>
</dropdown>
这应该足够好了:
<dropdown [ionSetting]="name" #modeSetting="ionSetting"></dropdown>
要做到这一点,我需要指令来做一些事情:
updateHost() {
const optionFactory = this.resolver.resolveComponentFactory(Option);
this.viewContainerRef.clear();
this.options.forEach(option => {
const component = this.viewContainerRef.createComponent(optionFactory);
component.instance.value = option;
// insert 'option' text
});
}
但这会产生兄弟姐妹:
<dropdown [ionSetting]="name"></dropdown>
<option [value]="option"></option>
我可以动态插入这些选项作为主持人的孩子吗?