2017-07-31 13 views
1

私はthis.routerを使用して、特定の条件が満たされたら別のコンポーネントにルーティングする角度2のアプリケーションを開発しようとしています。メソッドをナビゲートするが、それは "未定義のnavigate 'プロパティを読み取ることができません"エラーを表示し続けると、実行されていないようです。 framethisはもはやコンポーネントへのポイントであるため、この上の任意のヘルプ:)コンポーネント内の角度2のルーティングが機能していません(this.router.navigate not working)

特定のコンポーネント

import { Component, OnInit } from '@angular/core'; 

import { RouterModule, Routes, Router } from '@angular/router'; 

@Component({ 
    selector: 'app-searching', 
    templateUrl: './searching.component.html', 
    styleUrls: ['./searching.component.css'] 
}) 
export class SearchingComponent implements OnInit { 

constructor(private router:Router) { } 

ngOnInit() { 
var elem = document.getElementById("rightSideMovingProgressBar"); 
var elem2 = document.getElementById("progressText"); 
var height = 100; 
var height2 = 0; 
var id = setInterval(frame, 20); 
function frame() { 
    if (height <= 0) { 
     clearInterval(id); 
     this.router.navigate(['/details']); 
    } else { 
     height--; 
     height2++; 
     elem.style.height = height + 'vh'; 
     elem2.innerHTML = height2 + '%'; 
    } 
    } 
} 

} 

エラー

enter image description here

答えて

3

を理解するだろうそれはないです。より多くの情報とbindbound class propertiesを使用して他の可能なアプローチのための

var id = setInterval(()=>{ frame() }, 20); 

読むthisthis答え:以下を使用します。

あなたが変数に thisを保存することができ
1

var that = this。あなたが希望that.router.navigate(['/details']);

として使用することができます関数内

このことができます:)

+0

はあなたに非常に:)をありがとう、あなたとマクシムスの答えは、トリックをした:) –

関連する問題