Angular 2,Typescript模块没有导出常量'FORM_DIRECTIVES'

时间:2016-09-28 10:55:42

标签: javascript angularjs angular typescript

我正在尝试在我的应用中包含一个现有组件,并从示例代码中包含这些依赖项:

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但找不到任何内容

2 个答案:

答案 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 { ... }