Как получить HTTP-идентификатор из angular и отправить его в Java? - PullRequest
0 голосов
/ 03 июня 2019

У меня есть этот код на Angular, и мне нужно получить этот simboxid и отправить его в конечную точку Java.

mno.components.ts ngOnInit () {

this.mList.getMnosList().then(data=>this.mnos = data);
}

mno.service.ts

  getMnosList() {
    var simboxid = this.getItem.id;
    return this.http.get(`${environment.apiUrl}/MNO` +  ['simboxid'] )
                .toPromise()
                .then(res => <mno[]> res)
                .then(data => { 

                  return data;
      });

mno.ts

 export interface mno{
     id;
     name;}

В Java:

@Entity
@Table(name="MNO")

public class MNOList {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    int id;
    int simbox_id;
    public int getSimbox_id() {
        return simbox_id;
    }
    public void setSimbox_id(int simbox_id) {
        this.simbox_id = simbox_id;
    }
    String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

Конечная точка Java:

@Path("/MNO")
@ApplicationScoped
@Produces("application/json")
public class MnoListPoint {



    @Inject
    EntityManager em;

    @GET
    public String get(@QueryParam("simboxid") String id) {
        return JsonbBuilder.create().toJson(em.createNamedQuery("Select m from MnoList where simbox_id = :simboxid").setParameter("simboxid", id).getResultList());
    }

}

Помогите мне понять, как получить этот simbox_id, когда я нажимаю на конкретный симбокс.

Вот идентификатор, который мне нужен, потому что эти 2 таблицы simbox и Mno связаны.

1 Ответ

0 голосов
/ 03 июня 2019

От вашего mno.service.ts сервиса:

getMnosList() {
    var simboxid = this.getItem.id;
    return this.http.get(`${environment.apiUrl}/MNO?simboxid=${simboxid}` )
            .pipe(map(this.extractData)),
                   this.catchError);

Или используйте HttpParams для отправки параметров запроса: '

import { HttpClient, HttpParams } from '@angular/common/http';

getMnosList() {
        var simboxid = this.getItem.id;
 let params = new HttpParams().set('simboxid', simboxid);
        return this.http.get(`${environment.apiUrl}/MNO`, { params: params } )
 .pipe(map(this.extractData)),
                       this.catchError);

private extractData(res: any): any {
        return res.data || []; // or do what needs to be done
    }

private catchError = (observable: Observable<any>): Observable<never> => {
        return <Observable<never>>observable.pipe(catchError((error: any) => {
            return observableThrowError(error || 'Server error');
        }));
    }

В вашем компоненте просто подпишитесь на услугу:

this.mList.getMnosList().subscribe(data => { this.mnos = data })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...