代码之家  ›  专栏  ›  技术社区  ›  Krishnan

如何在Angular6 Get API方法中传递文件夹路径?

  •  0
  • Krishnan  · 技术社区  · 5 年前

    在我的角度应用程序中,我必须在角度6中传递一个Id和一个文件夹路径作为参数。

    输入字体

    let subDirectory: string = "folder1/folder2/folder3";
    let id: number = 6 ;
    this.http.get<ItemDetails[]>(this.appService.baseUrl + 'api/File/' + id + "/" + subDirectory)
    

    这里的问题是:API调用变成

    this.http.get(this.appService.baseUrl+'api/File/'+id+“/”+“folder1/folder2/folder3”)

    如果我们只有“folder1”作为子目录,那么没有问题。 “/folder2/folder3”是问题所在

    在控制器中

    [HttpGet("{id:int}/{subDirectotry?}")]
     [ResponseCache(NoStore = true)]
     public async Task<IActionResult> Get(int id, string subDirectotry)
     {
     }
    

    拜托,任何人,帮我实现同样的目标。

    3 回复  |  直到 5 年前
        1
  •  0
  •   rijin    5 年前

    简单地说,定义一个函数来调用服务中的api

    getItemsDetails (id: number, subDirectory: string) {
     return this.http.get<ItemDetails[]>(`${this.appService.baseUrl}api/File/${id}/${ subDirectory}`);
    }
    

    去拜访康彭;

    let subDirectory: string = "folder1/folder2/folder3";
    let id: number = 6 ;
    this.serviceName.getItemsDetails(id, subDirectory).subscribe(() => {
        // -> do what ever you want do with response.
    })
    
        2
  •  0
  •   Haidar Zeineddine    5 年前

    子目录 使用 encodeURIComponent ,然后尝试 景观

        3
  •  0
  •   Edward    5 年前

    您可以尝试使用 {*}

    [HttpGet("{id:int}/{*subDirectotry}")]
    [ResponseCache(NoStore = true)]
    public async Task<IActionResult> Get(int id, string subDirectotry)
    {
        return Ok();
    }