無法在我的AngularScript文件中混合某些版本的JavaScript。聲明函數和THIS; JavaScript版本
在下面的代碼中,在ngOnInit中,函數globalNavigationHandler沒有被識別,我不能使用this.globalNavigationHandler,因爲它具有我需要保留的不同含義。
我有一個eventlistener不是箭頭函數,因爲我需要這個反彈。
但是,我不知道如何正確獲取函數來識別我稱爲globalnavigationHandler的其他函數。我不能把globalNavigationHandler內聯,因爲它需要注入構造函數的路由器,並且具有不同的含義。
globalNavigationHandler = function(path) {
this.router.navigate([path]);
}
ngOnInit() {
var nav = document.getElementById("uhf-c-nav");
var anchors = nav.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
anchors[i].addEventListener(
"click",
function(event) {
event.preventDefault();
console.log("this is the element the event is bound to: " + this.id);
console.log("the event target is the clicked element: " + event);
console.log("this: " + this);
console.log("this.pathname: " + this.pathname);
globalNavigationHandler(this.pathname);
},
false
);
}
}
感謝
你可以使用'ElementRef'和'nativeElement'屬性來綁定一個事件監聽器 – Aravind
你是什麼意思的「JavaScript版本」? – 2017-08-27 09:36:12
ECMAScript語法等。我可能說錯了。 –