Как передать пути к папкам в Angular 6 Get API Method? - PullRequest
0 голосов
/ 27 декабря 2018

В моем угловом приложении я должен передать Id и путь к папке в качестве параметра в Angular 6.

Пожалуйста, посмотрите приведенный ниже фрагмент кода в машинописи

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 ]

0 голосов
/ 27 декабря 2018

Скорее всего, вы получаете 404 ошибки, попробуйте закодировать подкаталог , используя encodeURIComponent , затем попробуйте unescape , как только выполучить запрос.

0 голосов
/ 28 декабря 2018

Вы можете попробовать все параметры маршрута с {*}, как показано ниже:

[HttpGet("{id:int}/{*subDirectotry}")]
[ResponseCache(NoStore = true)]
public async Task<IActionResult> Get(int id, string subDirectotry)
{
    return Ok();
}
0 голосов
/ 27 декабря 2018

простыми словами, определите функцию для вызова 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.
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...