我是一個新手的角度4。我試圖通過使用Observables來實現路由。我爲url指定的鏈接用於從http.get請求獲取數據does not似乎工作並返回一個錯誤。角4 get方法無法獲取數據
以下是表示用於我的服務「productService.ts」的代碼:
import { Injectable } from '@angular/core';
import { IProducts } from './productsInterface';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/do';
@Injectable()
export class ProductService {
private urlOfService = './products.json';
constructor(private http: HttpClient){}
getProducts():Observable<IProducts[]>{
return this.http.get<IProducts[]>(this.urlOfService)
.do(data=>console.log('The data recieved' + JSON.stringify(data)))
.catch(this.handleError);
}
private handleError(err:HttpErrorResponse){
console.log(err.message);
return Observable.throw(err.message);
}
}
,並且其中所述服務是要使用的,如下所示的成分: 「ProductListComponent.ts」
import { Component, OnInit, Injectable } from '@angular/core';
import { FormsModule }from '@angular/forms';
import {IProducts} from './productsInterface';
import {ProductService} from './productService';
@Injectable()
@Component({
selector: 'app-product-list',
templateUrl: './product-list.component.html',
styleUrls: ['./product-list.component.css']
})
export class ProductListComponent implements OnInit {
errorMessage: any;
products: any;
constructor(private _useProductService : ProductService) { console.log(_useProductService); }
ngOnInit() {
console.log('Inside ngOnInit');
this._useProductService.getProducts().subscribe(
products=>{this.products= products; console.log(products)},error=>this.errorMessage =<any>error
);
}
pageTitle:string = "Official Merchandise";
imageHeight:number= 40;
imageWidth:number = 40;
showImage: boolean = false;
filterList :string = "Cart";
}
我有一個要在服務中使用的product.json文件(數據必須來自此文件) 所有3個文件(products.json,productListComponent.ts & productService.ts)都在sam e文件夾。
但仍然角顯示,錯誤404找不到文件(用於products.json)。 GET調用犯規作品,
我已經試過相應地修改我的文件路徑,但仍是其工作不適合我的應用程序的其餘部分工作得很好。此外,我已經在assets-array下的angular-cli.json中給出了products.json文件的路徑,但它仍然不起作用。
請告知在同一...謝謝!
當你有資產文件夾中的文件,它應該工作,所以...'私人urlOfService =資產/ products.json';'不起作用? – Alex