ng2-toastr 在 angular 2 中不工作
ng2-toastr not working in angular 2
我正在尝试在我的 angular 2 应用程序中使用 ng2-toastr。我已按照所有说明进行操作,但 toastr 没有出现任何控制台错误。我还在某处读到 ng-toastr 不再与 angular 2 一起使用,但没有找到任何有效的文档。
我搜索过类似的问题,但没有找到适合我的问题的答案。任何帮助将不胜感激。
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import{ ToastModule} from 'ng2-toastr/ng2-toastr';
import { BrowserAnimationsModule} from '@angular/platform-
browser/animations';
import "hammerjs"
import { CoreModule } from './core/core.module';
import { MODULE_ROUTES, MODULE_COMPONENTS } from './app.router'
@NgModule({
declarations: [
MODULE_COMPONENTS
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(MODULE_ROUTES),
BrowserAnimationsModule,
CoreModule,
ToastModule.forRoot()
],
providers: [ ],
bootstrap: [MODULE_COMPONENTS]
})
export class AppModule { }
app.component.ts
import { Component, ViewContainerRef } from '@angular/core';
import { ViewEncapsulation } from '@angular/core';
import { ToastsManager } from 'ng2-toastr/ng2-toastr';
@Component({
selector: 'wow-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
encapsulation: ViewEncapsulation.None
})
export class AppComponent {
constructor( public toastr: ToastsManager, private vRef: ViewContainerRef)
{
this.toastr.setRootViewContainerRef(vRef);
console.log(this.toastr);
}
}
这就是我在我的组件之一中调用 toastr 方法的方式:
login() {
this.user_service.login(this.user).then((response) => {
console.log(response)
this.toastrManager.success('Successfully Logged in.')
}
package.json
"dependencies": {
"@angular/animations": "^4.1.3",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/router": "^4.0.0",
"angular2-image-upload": "^0.6.1",
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"jquery": "^3.2.1",
"ng2-toastr": "^4.1.2",
"rxjs": "^5.1.0",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@angular/cli": "1.0.3",
"@angular/compiler-cli": "^4.0.0",
"@types/jasmine": "2.5.38"
}
我在 angular-cli.json 中也添加了 "../node_modules/ng2-toastr/bundles/ng2-toastr.min.css"
。
这是 console.log
[更新]
我终于设法解决了这个问题,想与所有陷入同一问题的人分享。请更改以下代码
import { ToastsManager } from 'ng2-toastr/ng2-toastr';
至
import { ToastsManager } from 'ng2-toastr';
因为,ToastsManager 是从父目录导出的,而不是从子目录导出的(至少,在我使用的依赖项版本中)。
在您的 angular-cli.json 文件中,将此行添加到样式 属性
../node_modules/ng2-toastr/bundles/ng2-toastr.min.css
我玩了 1 小时出错,最后我找到了以下内容
解决方案:
- 首先你需要从
复制"ng2-toastr.min.css"
nodemodules-->ng2toaster 文件夹
- 将此文件放入你的 assests 中,并在你的 base 中添加 link
"index.html" 文件
<link href="assets/css/ng2-toastr.min.css" rel="stylesheet" />
我正在尝试在我的 angular 2 应用程序中使用 ng2-toastr。我已按照所有说明进行操作,但 toastr 没有出现任何控制台错误。我还在某处读到 ng-toastr 不再与 angular 2 一起使用,但没有找到任何有效的文档。 我搜索过类似的问题,但没有找到适合我的问题的答案。任何帮助将不胜感激。
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import{ ToastModule} from 'ng2-toastr/ng2-toastr';
import { BrowserAnimationsModule} from '@angular/platform-
browser/animations';
import "hammerjs"
import { CoreModule } from './core/core.module';
import { MODULE_ROUTES, MODULE_COMPONENTS } from './app.router'
@NgModule({
declarations: [
MODULE_COMPONENTS
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(MODULE_ROUTES),
BrowserAnimationsModule,
CoreModule,
ToastModule.forRoot()
],
providers: [ ],
bootstrap: [MODULE_COMPONENTS]
})
export class AppModule { }
app.component.ts
import { Component, ViewContainerRef } from '@angular/core';
import { ViewEncapsulation } from '@angular/core';
import { ToastsManager } from 'ng2-toastr/ng2-toastr';
@Component({
selector: 'wow-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
encapsulation: ViewEncapsulation.None
})
export class AppComponent {
constructor( public toastr: ToastsManager, private vRef: ViewContainerRef)
{
this.toastr.setRootViewContainerRef(vRef);
console.log(this.toastr);
}
}
这就是我在我的组件之一中调用 toastr 方法的方式:
login() {
this.user_service.login(this.user).then((response) => {
console.log(response)
this.toastrManager.success('Successfully Logged in.')
}
package.json
"dependencies": {
"@angular/animations": "^4.1.3",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/router": "^4.0.0",
"angular2-image-upload": "^0.6.1",
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"jquery": "^3.2.1",
"ng2-toastr": "^4.1.2",
"rxjs": "^5.1.0",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@angular/cli": "1.0.3",
"@angular/compiler-cli": "^4.0.0",
"@types/jasmine": "2.5.38"
}
我在 angular-cli.json 中也添加了 "../node_modules/ng2-toastr/bundles/ng2-toastr.min.css"
。
这是 console.log
[更新]
我终于设法解决了这个问题,想与所有陷入同一问题的人分享。请更改以下代码
import { ToastsManager } from 'ng2-toastr/ng2-toastr';
至
import { ToastsManager } from 'ng2-toastr';
因为,ToastsManager 是从父目录导出的,而不是从子目录导出的(至少,在我使用的依赖项版本中)。
在您的 angular-cli.json 文件中,将此行添加到样式 属性
../node_modules/ng2-toastr/bundles/ng2-toastr.min.css
我玩了 1 小时出错,最后我找到了以下内容
解决方案:- 首先你需要从
复制"ng2-toastr.min.css" nodemodules-->ng2toaster 文件夹 - 将此文件放入你的 assests 中,并在你的 base 中添加 link "index.html" 文件
- 首先你需要从
<link href="assets/css/ng2-toastr.min.css" rel="stylesheet" />