在我的类中向构造函数添加字符串参数后,浏览器中出现错误:
我的类定义如下:
import { Component, OnInit } from '@angular/core';
import { MatrixComponent } from '../matrix/matrix.component';
@Component({
selector: 'app-player',
templateUrl: './player.component.html',
styleUrls: ['./player.component.css']
})
export class PlayerComponent implements OnInit {
private userName: string;
constructor(private name: string) {
this.userName = name;
this.discovered = 0;
this.matrix = new MatrixComponent();
}
ngOnInit() {
}
}
我正在另一个类的构造函数中创建对象:
var player1 = new PlayerComponent("Me");
我认为可以在构造函数中传递参数,对吗?我的代码有什么问题?
最佳答案
如 this 中所述问题,
@Component
装饰器告诉 angular
它不是一个普通的 typescript 类
,而是一个 Angular 组件
.
因此,要让它工作,您必须告诉它 string
是组件的 provider
,因为它期望构造函数参数是一个提供者 (它要么在组件的 元数据
中声明,要么在模块中声明。
string
不会工作,因为它不是已知的 angular 2 提供程序(除非您创建名为 string
的服务)。
这解释了为什么我们可以在普通类中创建这些类型的构造函数(string
作为参数),但不允许在 Angular 组件中创建。
希望对您有所帮助:)
关于angular - 空注入(inject)器错误 : No provider for String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48105151/