2017-09-25 67 views
0

這是我想要執行,並在app.component.ts我需要執行一個功能每x秒角2和打字稿

public goLocalization() :void { 
    this.localizationService.getLocalizationHttp().then(response => { 
     localStorage.setItem("locatios", JSON.stringify(response)); 
    }); 
    console.log('goLocalization'); 
    } 

從這裏我正在呼叫的功能,但它不執行,它使一個錯誤

<body onLoad="setInterval('goLocalization()',1000);"></body> 

這是錯誤

Uncaught ReferenceError: goLocalization is not defined 
    at <anonymous>:1:1 
+0

爲什麼不在應用程序組件類的'ngOnInit'中? – jonrsharpe

+0

您應該使用(加載)='...'作爲角度上下文。 – rjustin

+0

如果我已經可以使用OnInit接口找到解決方案並在函數ngOnInit(){} –

回答

0

我能找到使用的OnInit接口和ngOnInit(){}

在方法的解決方案,我把下面的代碼

ngOnInit() { 
setInterval(() => { 
     this.goLocalization(); 
    }, 1000); 
} 
0

在相位世界事件使用括號捕獲。您可以像加載事件一樣捕獲加載事件,但它需要大括號{{}}來接收組件上下文。

理想的選擇是將事件名稱包裝在括號中,並刪除'on'文本。

<body onLoad="{{setInterval('goLocalization()',1000);}}"></body> 

<body (load)="setInterval('goLocalization()',1000);"></body> 

可能?

<body [onLoad]="setInterval('goLocalization()',1000);"></body> 
+0

中使用謝謝,請使用ngOnInit(){} –

+0

@RicardoValderramaMadrigal找到解決方案,這絕對是更好的解決方案。 – rjustin

0

body.onLoad會出角上下文中執行,因此它不能看到goLocalization

你真的應該做的是

  • 在根組件注入你的服務
  • 選擇適當的生命週期階段(在初始化,內容初始化後等)
  • 將它(生命週期接口和方法)添加到您的根組件(也稱爲AppComponent )和呼叫的setInterval與goLocalization有