NgModules 不适用于 NgUpgrade
NgModules not working with NgUpgrade
Angular 1 & 2 (RC5) 应用程序 运行 在混合模式下使用 ng-upgrade。
尝试使用不起作用的 @NgModule
,我仍然必须使用以下方法手动添加提供者:
upgradeAdapter.addProvider(REACTIVE_FORM_PROVIDERS);
这使我无法从 RC5->RC6 升级。
要使用外部组件,我仍然必须将它们添加到指令中:使用它们的特定组件的数组。
import { AlertComponent } from 'ng2-bootstrap/ng2-bootstrap';
@Component({
selector: 'sb-staff-dashboard',
templateUrl: 'staff-dashboard.component.html',
styleUrls: ['staff-dashboard.component.scss'],
directives: [ AlertComponent ]
})
这是我的相关 bootstrap 代码。
upgradeAdapter.addProvider(COMMON_PROVIDERS);
upgradeAdapter.addProvider(HTTP_PROVIDERS);
upgradeAdapter.addProvider(DragulaService);
upgradeAdapter.addProvider(REACTIVE_FORM_PROVIDERS);
upgradeAdapter.bootstrap(document.documentElement, ['common', CommonModule], { strictDi: true });
upgradeAdapter.ts
import {UpgradeAdapter} from '@angular/upgrade';
export const upgradeAdapter = new UpgradeAdapter();
common.module.ts
import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from "@angular/forms";
import { HttpModule } from '@angular/http';
import { BrowserModule } from '@angular/platform-browser';
import { Ng2BootstrapModule } from 'ng2-bootstrap/ng2-bootstrap';
import { Dragula, DragulaService } from 'ng2-dragula/ng2-dragula';
@NgModule({
imports: [
BrowserModule,
ReactiveFormsModule,
Ng2BootstrapModule,
HttpModule
],
declarations: [
COMMON_COMPONENTS,
Dragula
],
providers: [
COMMON_PROVIDERS,
DragulaService
]
})
export class CommonModule { }
您必须使用您想要的模块创建 UpgradeAdapter
。
例如:
import { forwardRef } from '@angular/core';
import { CommonModule } from '@angular/common';
import { UpgradeAdapter } from '@angular/upgrade';
export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => CommonModule));
此外,您必须使用:
而不是导入 COMMON_COMPONENTS
和 COMMON_PROVIDERS
import { CommonModule } from '@angular/common';
@NgModule({imports: [CommonModule, ...]})
Angular 1 & 2 (RC5) 应用程序 运行 在混合模式下使用 ng-upgrade。
尝试使用不起作用的 @NgModule
,我仍然必须使用以下方法手动添加提供者:
upgradeAdapter.addProvider(REACTIVE_FORM_PROVIDERS);
这使我无法从 RC5->RC6 升级。 要使用外部组件,我仍然必须将它们添加到指令中:使用它们的特定组件的数组。
import { AlertComponent } from 'ng2-bootstrap/ng2-bootstrap';
@Component({
selector: 'sb-staff-dashboard',
templateUrl: 'staff-dashboard.component.html',
styleUrls: ['staff-dashboard.component.scss'],
directives: [ AlertComponent ]
})
这是我的相关 bootstrap 代码。
upgradeAdapter.addProvider(COMMON_PROVIDERS);
upgradeAdapter.addProvider(HTTP_PROVIDERS);
upgradeAdapter.addProvider(DragulaService);
upgradeAdapter.addProvider(REACTIVE_FORM_PROVIDERS);
upgradeAdapter.bootstrap(document.documentElement, ['common', CommonModule], { strictDi: true });
upgradeAdapter.ts
import {UpgradeAdapter} from '@angular/upgrade';
export const upgradeAdapter = new UpgradeAdapter();
common.module.ts
import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from "@angular/forms";
import { HttpModule } from '@angular/http';
import { BrowserModule } from '@angular/platform-browser';
import { Ng2BootstrapModule } from 'ng2-bootstrap/ng2-bootstrap';
import { Dragula, DragulaService } from 'ng2-dragula/ng2-dragula';
@NgModule({
imports: [
BrowserModule,
ReactiveFormsModule,
Ng2BootstrapModule,
HttpModule
],
declarations: [
COMMON_COMPONENTS,
Dragula
],
providers: [
COMMON_PROVIDERS,
DragulaService
]
})
export class CommonModule { }
您必须使用您想要的模块创建 UpgradeAdapter
。
例如:
import { forwardRef } from '@angular/core';
import { CommonModule } from '@angular/common';
import { UpgradeAdapter } from '@angular/upgrade';
export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => CommonModule));
此外,您必须使用:
而不是导入COMMON_COMPONENTS
和 COMMON_PROVIDERS
import { CommonModule } from '@angular/common';
@NgModule({imports: [CommonModule, ...]})