Soy nuevo en angular 2 y no encontré ninguna respuesta adecuada para preguntas similares publicadas.
Obtengo que la propiedad 'suscribirse' no existe en el tipo 'vacío' en angular-cli. Intenté importar la suscripción desde rxjs pero no encontré esa biblioteca.
por favor ayuda a resolver este problema. encuentre a continuación mi servicio y el código de componente en el que estoy llamando a ese servicio.
// ******************************* // login.service.ts // ******************************* import { Injectable } from '@angular/core'; import { Http, Response } from '@angular/http'; import { Observable } from 'rxjs/observable'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/catch'; import 'rxjs/add/operator/throw'; @Injectable() export class LoginService { constructor(private http: Http) { } getLoginData(){ this.http.get('./json/login.json') .map((result: Response) => result.json()) .catch(this.getError); } private getError(error: Response): Observable<any>{ console.log(error); return Observable.throw(error.json() || 'Server Issue'); } } // ******************************* // login.component.ts // ******************************* import { Component } from '@angular/core'; import { Router } from '@angular/router'; import { LoginService } from '../login.service'; @Component({ selector: 'app-login', templateUrl: './login.component.html', styleUrls: ['./login.component.css'], providers: [LoginService] }) export class LoginComponent { usernameModel: string; passwordModel: string; validLogin: Boolean; constructor(private router: Router, private loginService: LoginService) { } homeNav(){ if(this.usernameModel === 'jay' && this.passwordModel === 'Jay'){ this.validLogin = true; this.router.navigate(['/home']); } else{ this.validLogin = false; console.log('Login Error'); } this.loginService.getLoginData() .subscribe( data => console.log(data) ); } }No está devolviendo el observable en su función getLoginData . Agregue la palabra clave de return y, opcionalmente, agregue el tipo de devolución a la firma:
getLoginData(): Observable<any>{ return this.http.get('./json/login.json') .map((result: Response) => result.json()) .catch(this.getError); }Debe devolver la llamada http y asegurarse de agregar siempre sugerencias de tipo para que su IDE detecte estos errores de antemano.
getLoginData(): Observable<any> { return this.http.get('./json/login.json') .map((result: Response) => result.json()) .catch(this.getError); }estoy usando angular 13
Retorno de uso simple en la API
postProducto (datos: cualquiera) {
return this.http.post<any>(" http://localhost:3000/productList/", data)}
Agregar producto(){
if(this.productForm.valid){ this.API_DailogService.postProduct(this.productForm.value) .subscribe({ next:()=>{ alert("Product added successfully!") }, error: () =>{ alert("Error while adding product!") } }) }}
<button (clic)="addProduct()">Guardar