【发布时间】:2019-09-02 04:39:04
【问题描述】:
我一直在尝试通过传递 nameFilter = new FilterComponent("Name"); 之类的参数来实例化组件,但我收到了这个错误:
NullInjectorError: 没有字符串的提供者!
我相信依赖注入会导致这种情况,因为如果我不向组件注入任何东西,我不会收到任何错误。那么究竟是什么原因造成的,我该如何解决呢?
这是组件代码
import { Component, OnInit, Inject } from '@angular/core';
@Component({
selector: 'app-filter',
templateUrl: './filter.component.html',
styleUrls: ['./filter.component.scss']
})
export class FilterComponent implements OnInit {
title: String;
constructor(title: String) {
this.title = title;
}
ngOnInit() {
}
}
【问题讨论】:
-
在构造函数参数中,您引用
String类型的标题将其替换为string,s 小写 -
不,不起作用
-
将其更改为
string也将不起作用,因为 Angular 将尝试为string这是一个原始类型寻找提供者。同样作为好的设计,避免在构造函数中注入原始类型。 -
我一直在尝试创建具有不同值的组件类的多个实例,这就是我这样做的原因。老实说,如果不注入原始值,我不知道该怎么做。你能解释一下怎么做吗?
-
您正在寻找您将从调用组件的 html 注入的 @Input。
标签: angular typescript dependency-injection angular-components