Angular TypescriptファイルにJavaScriptのバージョンが混在しています。関数とこれを宣言します。 JavaScriptのバージョン
以下のコードでは、ngOnInitの関数globalNavigationHandlerは認識されず、this.globalNavigationHandlerを使用することができません。これは、保持する必要がある意味が異なるためです。
私はこのリバウンドが必要なため、矢印機能ではないイベントリスナーを持っています。
しかし、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バージョン"とはどういう意味ですか? –
ECMAScriptの構文など。私はおそらく間違って言った。 –