我在服务器上有一个文本文件,我想在每秒使用角度更新的div中显示内容。我怎么能这样做?
<div>Update text file here every second</div>
这是我的代码,是这样的?似乎没有用
<!DOCTYPE html>
<html>
<body>
<script>
private http: HttpClient;
let myText: string;
setInterval(() => {
getText();
}
,1000);
getText() {
this.http.get("https://my.text.file/textFile.txt", { responseType: "text" }).subscribe(data => {
this.myText = data;
});
}
document.getElementById("text").innerHTML =
this.myText();
</script>
<div id="text"></div>
<script src="//code.angularjs.org/1.2.20/angular.js"></script>
</body>
</html>
setInterval()
允许以指定的间隔调用函数。
let myText: string;
setInterval(() => {
getText();
}
,1000);
getText() {
this.http.get("http://api.example.com/text_file", { responseType: "text" }).subscribe(data => {
this.myText = data;
});
}
通过在构造函数中添加private http: HttpClient
将HttpClient注入到组件中(它可以是公共的或私有的)。
然后添加一个新方法,我们可以调用getText()
。
在那个方法中,我们称之为HttpClient的post
方法。
需要注意的两件重要事情是:第一个参数是存储文本文件的URL或访问它的URL。
第二个参数是一个设置一些选项的对象:在这里,我们对HttpClient说服务器将提供文本而不是JSON(responseType: 'text')
。
因为HttpClient的get()
,post()
,delete()
和put()
方法返回一个Observable,我们必须订阅它:所以,对于那个subscribe()
方法,我们传递一个函数(data => {}
)来获取我们的数据。
那些数据必须存储在某个地方,所以,之前我们创建了一个名为myText
的变量,它是一个字符串变量。
我们使用该变量来存储可以在组件视图中显示的数据。
Angular团队提供了tutorial来学习Angular原则,这是一个很好的起点。