我在更新到RC6后运行应用程序时遇到了一些问题。
由于官方示例from changelog,我改变了我的systemjs。
但我仍然遇到像这样的编译错误: "模块"" D:/ Myproject / WebClient / node_modules / @ angular / router / index"'没有出口会员' ROUTER_DIRECTIVES'。"
看起来编译器采用默认的index.js文件而不是umd包...编译由gulp任务完成,并带有以下选项:
"module": "system",
"moduleResolution": "node",
"target": "ES5",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"allowSyntheticDefaultImports": false
我得到路由器模块和表单模块的这个错误。
路由器为V3.0.0-rc.2,表格为V.2.0.0-rc6
认为无论如何我的systemJs无法正确读取更是一个问题。
SystemJS:
var map = {
'app': 'public/app',
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
'rxjs': 'npm:rxjs',
'symbol-observable': 'npm:symbol-observable',
'moment': 'npm:moment',
'ng2-charts': 'npm:ng2-charts',
'ng2-translate/ng2-translate': 'npm:ng2-translate',
'angular2-highcharts': 'npm:angular2-highcharts',
'highcharts/highstock.src': 'npm:highcharts',
'primeng': 'npm:primeng'
};
var packages = {
'app': { main: 'main', defaultExtension: 'js' },
'rxjs': { main: 'Rx.js', defaultExtension: 'js' },
'moment': { main: 'moment', defaultExtension: 'js', type: 'cjs'},
'symbol-observable': { main: 'index.js', defaultExtension: 'js' },
'ng2-charts': { main: 'ng2-charts', defaultExtension: 'js' },
'ng2-translate/ng2-translate': { main: 'ng2-translate', defaultExtension: 'js' },
'angular2-highcharts': { main: 'index', defaultExtension: 'js' },
'highcharts/highstock.src': { main: 'highstock.src', defaultExtension: 'js' },
'primeng': { defaultExtension: 'js' }s
};
System.config({
map: map,
packages: packages,
paths: {
// paths serve as alias
'npm:': 'node_modules/'
}
//format: 'register'
});
Aynbody有什么想法吗? 提前致谢
答案 0 :(得分:3)
根据rc6中的新更改,已删除已弃用的指令,并且在rc5中引入了默认的角度功能ngModule
,因此您必须根据Routing从RouterModule
配置@angular/router
用于配置路由的文档,然后您可以使用RouterModule
提供的指令。
答案 1 :(得分:3)
您必须从所有组件中删除ROUTER_DIRECTIVES
,FORM_DIRECTIVES
和CORE_DIRECTIVES
。而是为所有组件创建模块。导入BrowserModule
AppModule
并导入FormModule
以获取所需的所有模块指令。
可在此处找到更多信息:https://angular.io/docs/ts/latest/guide/architecture.html
AppModule看起来像如下:
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {AppComponent} from './app.component';
// Other imports are removed
@NgModule({
imports: [BrowserModule, HttpModule, LoginModule, routing],
declarations: [AppComponent],
providers: [
Logger,
LOG_LOGGER_PROVIDERS,
AuthenticationService,
AccountService
],
bootstrap: [AppComponent]
})
export class AppModule {
}