没有Array的提供者

时间:2016-09-02 09:56:51

标签: angular

我刚开始使用Angular RC6。我在@NgModule装饰器中导入HttpModule。

但是我得到了这个例外:没有Array的提供者!

我该如何解决这个问题?

- 编辑 - : 由于某种原因,此错误是由以下原因引起的:

constructor(private myService: CustomService, public items: Item[]) { }

3 个答案:

答案 0 :(得分:14)

如果服务,组件或指令的构造函数包含参数,Angulars依赖注入会尝试查找提供程序以从中获取值,然后将其传递给构造函数。

您没有为@Optional()类型注册的提供商

  • 您注册了提供商
  • 您在public items: Item[]之前添加//the following insures none of the JsonElement values are nil through optional binding if let propertyType = jsonElement["Property Type"] as? String, let price = jsonElement["Price"] as? String, let distance = jsonElement["Distance"] as? String ,以便Angulars DI在没有找到提供商的情况下可以忽略该参数
  • 从构造函数中删除参数。

答案 1 :(得分:2)

只需在构造函数外部初始化数组,然后在构造函数中创建它,即

export class Animal{    

    public animals: Animal[]; //initializing outside the constructor

    constructor(private animal: Animal) {

        this.animals = new Array<Animal>(); //creating inside the constructor

        animals.push(animal); //adding element to the array
    }        
}

答案 2 :(得分:0)

尝试在代码中使用bindingsproviders

例如

 @Component({
    selector: 'test-app',
    bindings: [ServiceName]
})