为什么我在 angular 中的订阅方法不起作用?
Why me subscribe method in angular is not working?
我是 Angular,Nodejs 的新手,我正在做一个 txt 文件的 CRUD 应用程序
我必须在列表中列出所有文件,如果您单击一个文件需要在“P”段上显示数据
我的文档组件
getDocuments() - returns 路径中所有文件的数组
getOneDOcument(name) -> 获取给定文件的所有数据 "name"
getData(name) -> 必须将数据发送到 id _> "paragraph_content"
的段落
getDocuments(){
this.DocumentService.getDocuments()
.subscribe(res => {
this.DocumentService.documents = res as Document[]
console.log("dentro del susbcribe");
console.log(res);
});
console.log("Fuera del subscribe");
}
getOneDocument(name : String){
console.log("NOO");
this.DocumentService.getOneDocument(name).subscribe(res => {
this.DocumentService.documentSelected = res as Document;
console.log(".");
});
}
getData(name : String){
console.log("hello name -> " , name)
// document.getElementById("paragraph_content").innerHTML = this.DocumentService.getOneDocument(name)
console.log("Before the subscrie");
this.DocumentService.getOneDocument(name)
.subscribe( (res ) =>{
//I need to change the paragraph content like this
//document.getElementById("paragraph_content").innerHTML = res.toString() Not working
console.log("Within", res);
} )
console.log("After Subscribe ")
}
文档服务[=36=]
我得到了给定
的 url 的数组
getDocuments(){
console.log("Get Documents method");
return this.http.get(this.URL_API );
}
getOneDocument(name: String){
console.log("Get OneDocyment method name given: " , name);
return this.http.get(this.URL_API + `/${name}`)
}
postDocument(){
//left
}
deleteDocument(name:String){
//left
}
文档组件html
<nav>
<ul class="ds-list-unstyled" *ngFor="let document of DocumentService.documents">
<li><a href="#" (click)="getData(document)"> {{document}} </a></li>
</ul>
</nav>
<article>
<h2>Texto en pantalla: </h2>
<p id="paragraph_content">Needs to change with a click
</p>
</article>
当我点击一个文件时得到的响应是:
提前致谢
我认为你的问题是你没有指定数据是文本,这就是为什么要尝试转换为 JSON。
尝试将 responseType
添加到请求中,像这样,
getOneDocument(name: String){
return this.http.get(`${this.URL_API}/${name}`, {responseType: 'text'})
}
XMLHttpRequest 属性 responseType 是一个枚举字符串值,指定响应中包含的数据类型。它还允许作者更改响应类型。
您应该将 responseType 设置为文本。
这样试试
getOneDocument(name: String){
console.log("Get OneDocyment method name given: " , name);
const requestOptions: Object = {
responseType: 'text'
}
return this.http.get(`${this.URL_API}/${name}`,requestOptions )
}
我是 Angular,Nodejs 的新手,我正在做一个 txt 文件的 CRUD 应用程序
我必须在列表中列出所有文件,如果您单击一个文件需要在“P”段上显示数据
我的文档组件
getDocuments() - returns 路径中所有文件的数组
getOneDOcument(name) -> 获取给定文件的所有数据 "name"
getData(name) -> 必须将数据发送到 id _> "paragraph_content"
getDocuments(){
this.DocumentService.getDocuments()
.subscribe(res => {
this.DocumentService.documents = res as Document[]
console.log("dentro del susbcribe");
console.log(res);
});
console.log("Fuera del subscribe");
}
getOneDocument(name : String){
console.log("NOO");
this.DocumentService.getOneDocument(name).subscribe(res => {
this.DocumentService.documentSelected = res as Document;
console.log(".");
});
}
getData(name : String){
console.log("hello name -> " , name)
// document.getElementById("paragraph_content").innerHTML = this.DocumentService.getOneDocument(name)
console.log("Before the subscrie");
this.DocumentService.getOneDocument(name)
.subscribe( (res ) =>{
//I need to change the paragraph content like this
//document.getElementById("paragraph_content").innerHTML = res.toString() Not working
console.log("Within", res);
} )
console.log("After Subscribe ")
}
文档服务[=36=]
我得到了给定
getDocuments(){
console.log("Get Documents method");
return this.http.get(this.URL_API );
}
getOneDocument(name: String){
console.log("Get OneDocyment method name given: " , name);
return this.http.get(this.URL_API + `/${name}`)
}
postDocument(){
//left
}
deleteDocument(name:String){
//left
}
文档组件html
<nav>
<ul class="ds-list-unstyled" *ngFor="let document of DocumentService.documents">
<li><a href="#" (click)="getData(document)"> {{document}} </a></li>
</ul>
</nav>
<article>
<h2>Texto en pantalla: </h2>
<p id="paragraph_content">Needs to change with a click
</p>
</article>
当我点击一个文件时得到的响应是:
提前致谢
我认为你的问题是你没有指定数据是文本,这就是为什么要尝试转换为 JSON。
尝试将 responseType
添加到请求中,像这样,
getOneDocument(name: String){
return this.http.get(`${this.URL_API}/${name}`, {responseType: 'text'})
}
XMLHttpRequest 属性 responseType 是一个枚举字符串值,指定响应中包含的数据类型。它还允许作者更改响应类型。 您应该将 responseType 设置为文本。
这样试试
getOneDocument(name: String){
console.log("Get OneDocyment method name given: " , name);
const requestOptions: Object = {
responseType: 'text'
}
return this.http.get(`${this.URL_API}/${name}`,requestOptions )
}