我正在尝试在我的应用中包含一个现有组件,并从示例代码中包含这些依赖项:
import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass} from 'angular2/common';
现在我使用的是'@angular'
而不是'angular2'
我认为是这样的:
import { Component, OnInit, CORE_DIRECTIVES } from '@angular/core';
import { FORM_DIRECTIVES } from '@angular/forms';
但是我收到此错误
mypath/node_modules/@angular/forms/index"' has no exported member 'FORM_DIRECTIVES'.
mypath/node_modules/@angular/core/index"' has no exported member 'CORE_DIRECTIVES'.
我应该如何包含FORM_DIRECTIVES
,如果它们不再是angular2
的一部分,那么解决依赖关系的替代方法或新方法是什么?
我检查了角度changelog但找不到任何内容
答案 0 :(得分:8)
FORM_DIRECTIVES
现在是FormsModule
的一部分,因此您应该导入FormsModule
并将其添加到模块的导入中。
CORE_DIRECTIVES
现在是CommonModule
的一部分,由BrowserModule
导出。您已在BrowserModule
中导入AppModule
,因此您无需对CORE_DIRECTIVES
执行任何操作。以下是导入FormsModule
的基本模块示例:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
@NgModule({
imports: [
BrowserModule,
FormsModule
],
declarations: [
AppComponent
],
bootstrap: [AppComponent]
})
export class AppModule { }
答案 1 :(得分:2)
你应该安装:
npm install --save angular2
像那样:
"dependencies": {
"@ngrx/store": "^1.2.1",
"angular2": "^2.0.0-beta.7",
"es6-promise": "^3.0.2",
"es6-shim": "^0.33.3",
"reflect-metadata": "0.1.2",
"rxjs": "5.0.0-beta.2",
"zone.js": "0.5.15"
}
这有效:
import {ControlGroup, Control, FORM_DIRECTIVES} from "angular2/common";
@Component({
selector: 'person-form',
directives: [FORM_DIRECTIVES],
template: require('./person_form.html')
})
export class PersonForm { ... }
This fails with FORM_DIRECTIVES as undefined:
import {ControlGroup, Control} from "angular2/common";
@Component({
selector: 'person-form',
directives: [FORM_DIRECTIVES],
template: require('./person_form.html')
})
export class PersonForm { ... }