gpt4 book ai didi

angular - elementRef.createComponent 不是函数

转载 作者:行者123 更新时间:2023-12-04 01:49:40 27 4
gpt4 key购买 nike

我正在尝试通过单击按钮动态加载微调器组件。

Plunker 链接在这里,

http://plnkr.co/edit/UEEQQRzX7RIkSO49rCHu?p=preview

let elementRef: ElementRef = this.appRef['_rootComponents'][0].location;

return this.startInside(elementRef, null);

我遇到以下错误:

elementRef.createComponent is not a function.

请推荐!

最佳答案

我已经调整了你的 plunkr 并将其 fork 到 here但总而言之,您应该这样做:

向模板添加占位符,然后将其分配为 @ViewChild 并将其传递给服务。现在是 app.ts:

@Component({
selector: 'my-app',
providers: [SpinnerService],
template: `
<div>
<button type="button" (click)="showSpinner()">Show Spinner</button>
<div #spinner></div>
</div>
`
})
export class App {
@ViewChild('spinner', { read: ViewContainerRef }) container: ViewContainerRef;

constructor(private _spinner: SpinnerService) {}

showSpinner() {
this._spinner.start(this.container);
setTimeout(() => this._spinner.stop(), 5000);
}
}

最后在服务中你可以这样做:

 public start(placeholder) {
let elementRef = placeholder;
return this.startInside(elementRef, null);
}

关于angular - elementRef.createComponent 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41262118/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com