首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角2 TypeScript误差:不能解析ProductsService的所有参数

角2 TypeScript误差:不能解析ProductsService的所有参数
EN

Stack Overflow用户
提问于 2017-01-31 20:23:07
回答 1查看 3.1K关注 0票数 2

我得到了以下信息:"Error:不能解析ProductsService的所有参数“。

参考文献:http://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/#toc-data-binding

product.model.ts

代码语言:javascript
复制
export class Product {
constructor(
    public ProductID?: number,
    public ProductName?: string,
    public UnitPrice?: number,
    public UnitsInStock?: number,
    public Discontinued?: boolean
) { } }

products.service.ts

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import { Jsonp, JsonpModule } from '@angular/http';
import { Product } from './product.model';
import { Observable } from 'rxjs/Rx';

@Injectable()

// See: http://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/#toc-data-binding

export class ProductsService {
    constructor( private jsonp: Jsonp) { }

    fetchData(action: string = "", data?: Product): Observable<Product[]>{
        console.log("BGW Action: " + action);
        console.log("BGW this.serializeModels(data) = " + this.serializeModels(data));
        return this.jsonp.get(`http://demos.telerik.com/kendo-ui/service/Products/${action}?callback=JSONP_CALLBACK${this.serializeModels(data)}`).map(response => response.json())
    }

    private serializeModels(data?: Product): string {
        return data ? `&models=${JSON.stringify([data])}` : '';
    }
}

app.component.ts

包含:

代码语言:javascript
复制
import { ProductsService } from './products.service';
import { Product } from './product.model';
import { Inject } from '@angular/core';

和:

代码语言:javascript
复制
providers: [ProductsService],

和:

代码语言:javascript
复制
public productsData: Array<Product> = [];
// public listItems: Array<string> = [];

和:

代码语言:javascript
复制
//constructor (@Inject(ProductsService) private productService: ProductsService) { }
constructor (private productService: ProductsService) { }

ngOnInit() {
  this.productService.fetchData().subscribe(
    (data) => this.productsData = data
  )
}

任何想法都很受欢迎。

致以敬意,

EN

回答 1

Stack Overflow用户

发布于 2017-02-01 02:24:26

为了解决这个问题,在app.component.ts中我更改了:

代码语言:javascript
复制
constructor (private productsService: ProductsService) { }

代码语言:javascript
复制
constructor (@Inject(ProductsService) private productsService: ProductsService) { }

product.service.ts,变更中:

代码语言:javascript
复制
constructor( private jsonp: Jsonp) { }

至:

代码语言:javascript
复制
constructor(@Inject(Jsonp) private jsonp: Jsonp) { }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41966820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档