2017-09-25 103 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有