无法加载ng2-toastr

时间:2017-04-30 07:09:13

标签: angular angular2-template ng2-bootstrap toastr angular-toastr

我正在使用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 { }

2 个答案:

答案 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;在地图部分