2017-07-03 31 views
0

私は、ページの起動時に新しいページを開くしようとしているが、私はごく最近活字体とAngular4で作業を開始しましたので、私はそうじゃない角度4 NgOnInitReferenceエラー

Reference Error: Window not defined.

を得続けますこの2つの問題のどちらが本当に下にあるのか確かめてください。

export class HomeComponent implements OnInit { 

testCall: Window; 

constructor() {  
    this.testCall = new Window(); 
    this.testCall.open(
    "https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg"); 
} 

ngOnInit(): void { 
    console.log("function read"); 

    window.open("https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg"); 
} 

私はOnInit()this.testCall.openを使用する場合でも、私はだけでなくopen方法で、参照エラーを取得します。

最初のページが開いてもすでに1週間前に開いていて、typescript/angular4セットアップでこれをどうやって行うのか分かりません。

答えて

0

this.testCall = new Window(); 

windowこの行を削除しますが、単に新しいウィンドウを開く必要がwindow.open('url')を呼び出し、JSのグローバル変数です。

+0

既に試してみましたが、うまくいきませんでした。ウィンドウが定義されていません。 : – RoboKy

+0

あなたはその行を削除する必要があります。メッセージが残っていれば削除しませんでした – trichetriche

+0

もちろん、私はその行を削除しました。 – RoboKy

0

HomeComponent?を含むファイルのwindowオブジェクトを宣言してみましたか?もしそうでなければ、それを宣言してください。

declare var window: any; 

(インポート後)。

TypeScriptは、入力情報を入力していないため、ウィンドウについては認識しません。その場合、typescriptコンパイラに、グローバル名前空間内のwindow参照がtypescriptファイルに由来していないことを伝えるように宣言することができます。

このシナリオについての詳細を読むhere

0

オーケー明らかにウィンドウが、私はそこに

を「window.open」を置くしようとすると、ngOnInit()とコンストラクタ()がエラーをスローする理由であるサーバーを、存在しません。
import { Component, PLATFORM_ID, Inject, OnInit } from '@angular/core'; 
import { isPlatformBrowser } from '@angular/common'; 

export class HomeComponent { 
submitted: boolean = false; 

constructor(@Inject(PLATFORM_ID) private platformId: Object) { 

} 

ngOnInit() { 
    if (isPlatformBrowser(this.platformId)) { 
     window.open("URL"); 
    } 
} 
} 

これは私にとって完璧に機能しました。