我正在尝试在angularjs 2中使用toastr作为服务,将在我的组件中注入,如下所述。当调用handleEvent函数时,我正在接收“无法读取未定义的属性'扩展'”。非常感谢任何有关错误的建议和/或解释。
app.moudle.ts已导入ToastrService,并且已在提供商中添加了ToastrService。
//events/events-list.components.ts
import { ToastrService } from '../common/toastr.service';
@Component ({
selector: 'event-list',
template: `
<div>
<h1> Upcoming Angular 2 Event </h1>
<hr>
<div class="row">
<div *ngFor="let event_data of all_data" class="col-md-5">
<event-thumbnail (click)="handleEvent(event_data.name)" [event]="event_data"></event-thumbnail>
</div>
</div>
</div>
`
})
export class EventListComponent implements OnInit {
all_data:any[]
constructor(private eventService : EventService , private toastr : ToastrService ){
//moved code from here to ngOnInit
}
ngOnInit(){
this.all_data = this.eventService.getEvents();
}
handleEvent(eventName) {
console.log("hey here "+eventName);
this.toastr.success(eventName);
}
}
错误:
[在console.log输出后抛出此错误]
EXCEPTION:./ EventListComponent类EventListComponent中的错误 - 内联模板:6:16引起:无法读取属性'extend' 未定义。 原始例外:无法读取未定义的属性'extend' TypeError:无法读取未定义的属性“extend” 在米(toastr.js:411) 在Object.s [成功](toastr.js:85) 在ToastrService.success(toastr.service.ts:12)
答案 0 :(得分:27)
添加此内容
script src="node_modules/toastr/build/toastr.min.js"
之后
script src="node_modules/jquery/dist/jquery.min.js"></script>
原因:toastr.js
使用jQuery
,因此jQuery
应该在toastr.js
之前加载
答案 1 :(得分:0)
bootstrap.min.css也应该在toastr.min.js之前下注。
环境:Angular 7和bootstrap 4。
下面是angular.json的一部分,它正在工作。
"styles": [
"node_modules/ngf-bootstrap/dist/bootstrap.min.css",
"node_modules/toastr/build/toastr.min.css",
"src/styles.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/bootstrap/dist/js/bootstrap.js",
"node_modules/toastr/build/toastr.min.js"
]
答案 2 :(得分:0)
对我有用的东西分别是在脚本部分的angular.json文件中的以下顺序:
`"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/toastr/build/toastr.min.js",
"node_modules/bootstrap/dist/js/bootstrap.js"
]`
答案 3 :(得分:0)
使用toastr之前,请确保导入jquery。这是敬酒的要求。
答案 4 :(得分:0)
npm install jquery --save
angular.json
文件,添加以下内容:"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/toastr/build/toastr.min.js"
]