为什么我在 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 )

  }