Как передать параметр в вызов функции в angular 6? - PullRequest
0 голосов
/ 11 января 2019

freeapiservice - это мой веб-сервис, в котором я хочу вызвать функцию из другой класс app.component в insertFormadata функции, которую я хочу вызвать параметр из app.component:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { HttpClient, HttpParams } from '@angular/common/http';

@Injectable()
export class freeApiService {
    constructor(private httpclient: HttpClient) {
    }

    insertFormadata(): Observable<any> {
        return this.httpclient.get("/api/api?type=savedata&fname=nilesh&tfvalue=js&mobile=6547896541&type_sec=1452&city=bhopal&email=nkardate@gmail.com")
    }

    getcomments(): Observable<any> {
        return this.httpclient.get("http://jsonplaceholder.typicode.com/posts/1/comments")
    }

    getcommentsbyparameters(): Observable<any> {
        let params1 = new HttpParams().set("userId", "1");
        return this.httpclient.get("http://jsonplaceholder.typicode.com/posts", { params: params1 })
    }
}

app.component.ts код файла здесь onSubmit нажмите У меня есть JSON.stringify(this.data.name) это значение, которое я хочу передать API веб-службы.

import { Component } from '@angular/core';
import { freeApiService } from './services/freeapi.service';
import { Comments } from './classes/comments';
import { from } from 'rxjs';
import { Posts } from './classes/posts';

@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent {
    title = 'applykaroo';
    data: any = {};

    onSubmit() {
        alert(JSON.stringify(this.data.name));
        this._freeApiService.insertFormadata().subscribe(
            data => {
                this.lstcomments = data;
            }
        );
    }

    constructor(private _freeApiService: freeApiService) {
    }

    lstcomments: Comments[];
    lstparacomments: Posts[];

    ngOnInit() {
        this._freeApiService.getcomments().subscribe(
            data => {
                this.lstcomments = data;
            }
        );
        this._freeApiService.getcommentsbyparameters().subscribe(
            data => {
                this.lstparacomments = data;
            }
        )
    }
}

Ответы [ 2 ]

0 голосов
/ 11 января 2019
  1. Ваша сервисная функция должна принимать аргумент.

    insertFormadata(data: any): Observable < any > { return this.httpclient.get("/api/api?type=savedata&fname=nilesh&tfvalue=js&mobile=6547896541&type_sec=1452&city=bhopal&email=nkardate@gmail.com") }

  2. Ваш app.component должен передать аргумент методу.

    this._freeApiService.insertFormadata(this.data).subscribe(data=>{this.lstcomments=data; });
    

Примечание. В идеале для сохранения данных следует использовать вызов HTTP POST.

Что-то вроде ниже, в freeapiservice

insertFormadata(data:any):Observable<any>{

        return this.httpclient.post("apiurl", data)
    }
0 голосов
/ 11 января 2019

В вашем сервисе метод должен выглядеть так:

 insertFormadata(name: string): Observable<any>{

и вам следует позвонить:

this._freeApiService.insertFormadata(this.data.name).subscribe(

Подробнее о функциях и параметрах вы можете найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...