我在服务器上有一个文本文件,我想每秒使用角度更新在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>
答案 0 :(得分:1)
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。
第二个参数是用于设置某些选项的对象:在这里,我们对HttpClient说,服务器将提供文本而不是JSON(responseType: 'text')
。
因为HttpClient的get()
,post()
,delete()
和put()
方法返回一个Observable,所以我们必须订阅它:因此,我们向该subscribe()
方法传递了一个函数(data => {}
)来获取我们的数据。
该数据必须存储在某个地方,因此,在前面,我们创建了一个名为myText
的变量,它是一个字符串变量。
我们使用该变量存储可以在组件视图中显示的数据。
Angular团队提供了tutorial来学习Angular原理,这是一个很好的起点。