我正在使用systemjs.config,angular 4和ng2-toastr version 4.0.1 运行应用程序时出错 “无法读取未定义的属性'forRoot'” 似乎没有加载ToastModule或ng2-bootstrap中的任何类
这是systemjs.config.js文件
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: 'app',
// angular bundles
'@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/platform-browser/animations': 'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.min.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',
'ng2-toastr': 'npm:ng2-toastr/bundles/ng2-toastr.min.js',
'ng2-validation': 'npm:ng2-validation/bundles/ng2-validation.umd.js',
'libphonenumber-js': 'npm:libphonenumber-js/bundle/libphonenumber-js.min.js',
// other libraries
'rxjs': 'npm:rxjs',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js'
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
main: './main.js',
defaultExtension: 'js'
},
rxjs: {
defaultExtension: 'js'
},
'ng2-toastr': {
defaultExtension: 'js'
},
'ng2-validation': {
defaultExtension: 'js'
}
}
});
})(this);
这是我加载toastr
的核心模块import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CustomFormsModule } from 'ng2-validation'
import { ToastModule } from 'ng2-toastr';
@NgModule({
imports: [BrowserModule, CustomFormsModule, ToastModule.forRoot()],
providers: [}],
declarations: [],
bootstrap: []
})
export class CoreModule { }
答案 0 :(得分:1)
我遇到了同样的问题。最后,我找到了解决方案。
您可以在system.config.js中定义ng2-toastr
,如下所示。
在map
部分,
map: {
app: 'app',
....
'ng2-toastr': 'npm:ng2-toastr'
}
然后在packages
部分,
'ng2-toastr': { main: './bundles/ng2-toastr.min.js', defaultExtension: 'js'}
在app.module.ts中,您必须像这样导入toastr。
import { ToastModule } from 'ng2-toastr/ng2-toastr';
在index.html中,您必须加载css和javascript文件。
<link href="~/node_modules/ng2-toastr/bundles/ng2-toastr.min.css" rel="stylesheet" />
<script src="~/node_modules/ng2-toastr/bundles/ng2-toastr.min.js"></script>
最后,在组件中,您可以导入Toaster组件。
import { ToastsManager, ToastOptions } from 'ng2-toastr/ng2-toastr';
它对我有用。
感谢。
答案 1 :(得分:0)
尝试ng2-toastr&#39;:&#39; npm:ng2-toastr&#39;而不是&#39; ng2-toastr&#39;:&#39; npm:ng2-toastr / bundles / ng2-toastr.min.js&#39;在地图部分