[英]Use injected dependency in jQuery event listener in angular
我在Angular 6中使用Bootstrap 4模態,並且一旦模態關閉,我想將用戶重定向到另一條路線。 但是,當模式關閉時,我遇到了一個范圍界定問題,告訴我我注入的路由器未定義。
我的代碼:
import { Component, OnInit } from '@angular/core';
declare var $: any
@Component({
selector: 'app-modal',
templateUrl: './modal.component.html',
styleUrls: ['./modal.component.css']
})
export class ModalComponent implements OnInit {
constructor(
public router: Router
) {}
ngOnInit() {}
ngAfterViewInit() {
$('#mymodal').on('hidden.bs.modal', function (e) {
router.navigate(['/']) //tells me that router is undefined
})
}
}
使用this
可以作為注入的依賴項訪問router
,並使用箭頭函數語法( (e) => {}
)將其范圍限定到正確的范圍。 像這樣:
ngAfterViewInit() {
$('#mymodal').on('hidden.bs.modal', (e) => {
this.router.navigate(['/']);
})
}
像在Jquery
一樣使用this
關鍵字。
ngAfterViewInit() {
var self = this;
$('#mymodal').on('hidden.bs.modal', function (e) {
self.router.navigate(['/']);
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.