将模板化内容附加到父组件节点

时间:2018-04-03 07:52:06

标签: angular

我有简单的子组件:

@Component({
  selector: 'app-child',
  template: `<div>My child Component</div>
    <ng-template #button>
        <app-my-button></app-my-button>
    </ng-template>`
})

export class ChildComponent implements OnInit {
  @Input() menu:ViewContainerRef;
  @ViewChild('button') buttonTemplate:TemplateRef<any>;  

  constructor() {}

  ngOnInit() {
    if (this.menu){
      this.menu.createEmbeddedView(this.buttonTemplate);
    }
 }
}

我需要将'ng-template'元素的内容追加到从父组件传递的容器中。 父组件模板可以具有这样的标记:

<div #rightMenu></div>
<app-child [menu]="rightMenu"></app-child>

此处将容器'rightMenu'传递给子输入属性'menu'。 在这段代码中,问题是'menu'字段没有真正的ViewContainerRef类型。它的类型为“任何”。 我们如何将容器引用传递给子组件并附加模板块?

0 个答案:

没有答案