Angular2没有渲染器的提供程序!(NgModel->;令牌NgValueAccessor->;DefaultValueAccessor->;渲染器)

Angular2没有渲染器的提供程序!(NgModel->;令牌NgValueAccessor->;DefaultValueAccessor->;渲染器),angular,angular2-template,angular2-directives,angular2-forms,Angular,Angular2 Template,Angular2 Directives,Angular2 Forms,我在中输入customModal.ts的customModal。 具体来说,我添加了一个输入包含ngModel,它导入了FORM_指令和指令 运行“渲染器无提供程序”时出现的问题!(NgModel->Token NgValueAccessor->DefaultValueAccessor->Renderer)' 请帮我解决这个问题。 谢谢。您可能需要添加组件装饰器 @Component({ providers: [Renderer], ... )} 我认为有两种可能性: 未在组件或应用

我在中输入customModal.ts的customModal。 具体来说,我添加了一个输入包含ngModel,它导入了FORM_指令和指令

运行“渲染器无提供程序”时出现的问题!(NgModel->Token NgValueAccessor->DefaultValueAccessor->Renderer)'

请帮我解决这个问题。
谢谢。

您可能需要添加组件装饰器

@Component({
  providers: [Renderer],
  ...
)}

我认为有两种可能性:

  • 未在组件或应用程序级别指定相应的提供程序。我认为这不是问题所在,因为我已经注入了一个
    呈现程序
    ,而没有在它的
    providers
    属性中或
    引导
    函数的第二个参数中指定它

    诸如此类:

从'angular2/core'导入{Component,Renderer,ElementRef};
@组成部分({
选择器:'子',
模板:“”,
})
导出类子组件{
构造函数(私有_渲染器:渲染器,
私人el:ElementRef){
(...)
}
}
  • 我认为这是因为注入渲染器的类没有被修饰,所以依赖注入无法应用。正如本文所强调的,您需要有这个才能注入<代码>可注入的不是用于注入到某物中,而是用于注入到自身中
编辑

查看代码后,似乎需要将渲染器添加到提供给
loadnextotology
方法的提供程序列表中。您可以像这样更新
DialogService#open
方法的代码:

var otherResolved=Injector.resolve([
提供(DialogRef,{useValue:DialogRef})
提供(渲染器,{useValue:this.Renderer})
]);
希望它能帮助你,
蒂埃里

这仍然是个错误。是否可以显示项目的控制台日志()并解决错误?是否可以显示项目的控制台日志(plnkr.co/edit/o09cpitFihjZE2EpHNRE?p=preview)并解决错误?您需要将渲染器添加到提供给
对话框服务
中的
loadNextToLocation
方法的提供程序列表中。有关更多详细信息,请参见我的答案;-)伟大的非常感谢你!