如果像这样使用 `private fb: FormBuilder` 为什么 `FormBuilder` 的 DI 会失败
Why DI for `FormBuilder` fails if used like this `private fb: FormBuilder`
我正在尝试像这样将 FormBuilder
class 注入到组件中:
@Component({
...
})
export class TaskComponent implements OnInit {
constructor(private fb: FormBuilder) {}
但是,它失败了,我收到错误消息:
(SystemJS) Can't resolve all parameters for TaskComponent:
(?).↵ Error: Can't resolve all parameters for TaskComponent: (?).
如果我将构造函数更改为这种形式:
constructor(@Inject(FormBuilder) fb: FormBuilder) { }
一切正常。有什么问题?
我没有
"emitDecoratorMetadata": true
在 tsconfig.json
中,因此这部分不是由 tsc
生成的:
TaskComponent = __decorate([
core_1.Component({
moduleId: module.id,
selector: 'task',
templateUrl: 'task.component.html',
styleUrls: ['task.component.css']
}),
__metadata("design:paramtypes", [forms_1.FormBuilder])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
], TaskComponent);
我正在尝试像这样将 FormBuilder
class 注入到组件中:
@Component({
...
})
export class TaskComponent implements OnInit {
constructor(private fb: FormBuilder) {}
但是,它失败了,我收到错误消息:
(SystemJS) Can't resolve all parameters for TaskComponent: (?).↵ Error: Can't resolve all parameters for TaskComponent: (?).
如果我将构造函数更改为这种形式:
constructor(@Inject(FormBuilder) fb: FormBuilder) { }
一切正常。有什么问题?
我没有
"emitDecoratorMetadata": true
在 tsconfig.json
中,因此这部分不是由 tsc
生成的:
TaskComponent = __decorate([
core_1.Component({
moduleId: module.id,
selector: 'task',
templateUrl: 'task.component.html',
styleUrls: ['task.component.css']
}),
__metadata("design:paramtypes", [forms_1.FormBuilder])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
], TaskComponent);