Как прекратить передачу параметров запроса, если значение равно нулю. Используя ‘ng-attr-href’

#angular #angular-ui-router #angular-ng-if

#angular #angular-ui-router #angular-ng-if

Вопрос:

Я новичок в Angular. В моей программе я передаю некоторые значения внутри <a href> тега.

Текущий код таков.

 <a (click)="navigateFunction()" href="{{sceURL}}/?orderId={{orderId}}">
 

component.ts :

 navigateFunction(){
    this.orderId = this.orderIdFormGroup.value.orderId;
    this.sceURL = "URL";
    }
 

Если значение равно нулю, оно перезагружается с помощью ключа, подобного этому.

  URL/rtap-menu/gadget-rtap-sce?orderId=
 

Как изменить его на URL-адрес только для передачи, если значение равно Null
Я надеюсь, что это можно сделать с помощью ng-attr-href

Ответ №1:

попробуйте выполнить

 get gotoUrl() {
   return this.orderId 
        ? `${sceURL}/?orderId=${orderId}`
        : this.sceURL
}
 

и в html, как

 <a (click)="navigateFunction()" [href]="gotoUrl">
 

Ответ №2:

Поскольку вы новичок в angular, вам следует прочитать о том, как работает маршрутизация в этом официальном руководстве. В частности, как работает routerLink (который следует использовать для внутренней навигации внутри приложения) и как вы можете передать массив параметров, например

 <a [routerLink]="['orderId', orderIdFormGroup.value.orderId]">
 

Это устраняет необходимость в прослушивателе (щелчок) и повышает удобство использования (поскольку ссылки будут отображаться правильно и могут быть скопированы).