我刚开始使用Angular RC6。我在@NgModule装饰器中导入HttpModule。
但是我得到了这个例外:没有Array的提供者!
我该如何解决这个问题?
- 编辑 - : 由于某种原因,此错误是由以下原因引起的:
constructor(private myService: CustomService, public items: Item[]) { }
答案 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)
尝试在代码中使用bindings
或providers
例如
@Component({
selector: 'test-app',
bindings: [ServiceName]
})