小编Kir*_*ver的帖子

动态更改Angular 4组件的模板

使用Angular 4.1,我试图在模块渲染之前动态更改模块类型的模板.这可能吗?

我们在页面上引导未知数量的组件(来自已知的组件类型列表),并且页面可能包含多个相同类型的组件.我发现了一种方法可以为每个组件提供一个不同的选择器,这样它们就可以单独渲染(即使它们属于同一类型),但我还需要给每个组件一个不同的模板. 模板应该是所选元素的内部HTML.

这是代码:

import { Component, NgModule, Inject, ApplicationRef, ComponentFactoryResolver, OpaqueToken, Type } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { MyNavComponent } from './MyNav.component';
import { MyRotatorComponent } from './MyRotator.component';
import { MySignUpComponent } from './MySignUp.component';

export const BOOTSTRAP_COMPONENTS_TOKEN = new OpaqueToken('bootstrap_components');

@NgModule({
    imports: [BrowserModule],
    declarations: [
        MyNavComponent,
        MyRotatorComponent,
        MySignUpComponent
    ],
    entryComponents: [
        MyNavComponent,
        MyRotatorComponent,
        MySignUpComponent
    ],
    providers: [
        {
            provide: BOOTSTRAP_COMPONENTS_TOKEN,
            useValue: [
                { type: MyNavComponent },
                { type: MyRotatorComponent },
                { type: MySignUpComponent …
Run Code Online (Sandbox Code Playgroud)

angular2-template angular2-components angular

8
推荐指数
1
解决办法
2万
查看次数