Angular DataService 无法解析参数
Angular DataService cant resolve parameters
我正在使用 Angular v.4.2.4。当我尝试从 API 获取数据时,出现了一个我似乎无法找到的错误。 API 在我自己的机器上,并且正在返回数据,因为它应该在邮递员中。我得到的错误是:
Can't resolve all parameters for DataService
这是我认为有助于查找错误的文件:
app.module
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { AppComponent } from './app.component';
import { ProductComponent } from './shop/product.component';
import { DataService } from './shared/dataService';
@NgModule({
declarations: [
AppComponent,
ProductComponent
],
imports: [
BrowserModule,
HttpClientModule
],
providers: [DataService],
bootstrap: [AppComponent]
})
export class AppModule { }
dataService
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/map';
import { Product } from './product';
Injectable()
export class DataService {
constructor(private http: HttpClient) { }
public products: Product[] = [];
loadProducts(): Observable<boolean>{
return this.http.get('/api/products')
.map((data: any[]) => {
this.products = data;
return true;
})
}
}
product.component
import { Component, OnInit } from "@angular/core";
import { DataService } from '../shared/dataService';
import { Product } from '../shared/product';
@Component({
selector: "product-list",
templateUrl: "productList.component.html",
styleUrls: []
})
export class ProductComponent implements OnInit {
constructor(private data: DataService) { }
public products: Product[] = [];
ngOnInit(): void {
this.data.loadProducts()
.subscribe(success => {
if (success) {
this.products = this.data.products;
}
});
}
}
如果您想查看其他内容,请告诉我。感谢大家的帮助。
您需要在 'product' api 中提供一些数据值作为参数
在您的产品组件中。
this.data.loadProducts({'url': '/api/products', 'data':{
'x': ''
}}).subscribe(success =>{
console.log(success);
})
在您的数据服务中
loadProducts(data): Observable<boolean>{
return this.http.get(data.url, data.data)
.map((data: any[]) => {
this.products = data;
return true;
})
}
我正在使用 Angular v.4.2.4。当我尝试从 API 获取数据时,出现了一个我似乎无法找到的错误。 API 在我自己的机器上,并且正在返回数据,因为它应该在邮递员中。我得到的错误是:
Can't resolve all parameters for DataService
这是我认为有助于查找错误的文件:
app.module
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { AppComponent } from './app.component';
import { ProductComponent } from './shop/product.component';
import { DataService } from './shared/dataService';
@NgModule({
declarations: [
AppComponent,
ProductComponent
],
imports: [
BrowserModule,
HttpClientModule
],
providers: [DataService],
bootstrap: [AppComponent]
})
export class AppModule { }
dataService
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/map';
import { Product } from './product';
Injectable()
export class DataService {
constructor(private http: HttpClient) { }
public products: Product[] = [];
loadProducts(): Observable<boolean>{
return this.http.get('/api/products')
.map((data: any[]) => {
this.products = data;
return true;
})
}
}
product.component
import { Component, OnInit } from "@angular/core";
import { DataService } from '../shared/dataService';
import { Product } from '../shared/product';
@Component({
selector: "product-list",
templateUrl: "productList.component.html",
styleUrls: []
})
export class ProductComponent implements OnInit {
constructor(private data: DataService) { }
public products: Product[] = [];
ngOnInit(): void {
this.data.loadProducts()
.subscribe(success => {
if (success) {
this.products = this.data.products;
}
});
}
}
如果您想查看其他内容,请告诉我。感谢大家的帮助。
您需要在 'product' api 中提供一些数据值作为参数 在您的产品组件中。
this.data.loadProducts({'url': '/api/products', 'data':{
'x': ''
}}).subscribe(success =>{
console.log(success);
})
在您的数据服务中
loadProducts(data): Observable<boolean>{
return this.http.get(data.url, data.data)
.map((data: any[]) => {
this.products = data;
return true;
})
}