大佬教程收集整理的这篇文章主要介绍了在Angular 4中使用Renderer,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
import { Injectable,Renderer2 } from '@angular/core'; constructor(private renderer: Renderer2) {}
有没有人有任何想法我做错了什么?
import { Injectable,Renderer2 } from '@angular/core'
我怀疑你是在尝试在你的服务类中注入Renderer2.它不会起作用.您无法在服务中注入Renderer2.它应该适用于组件内提供的组件和服务.
我们可以看看源代码https://github.com/angular/angular/blob/4.0.1/packages/core/src/view/provider.ts#L363-L373
while (view) { if (elDef) { switch (tokenKey) { case RendererV1TokenKey: { const compView = findCompView(view,elDef,allowPrivateservices); return createRendererV1(compView); } case Renderer2TokenKey: { const compView = findCompView(view,allowPrivateservices); return compView.renderer; }
它只在元素注入器树中检查.并且没有其他地方可以提供此令牌
因此,当您调用某些服务@L_772_3@https://github.com/angular/angular/issues/17824#issuecomment-311986129时,您必须将Renderer2从组件传递到服务
或者您可以在组件内提供服务
@Injectable() export class service { constructor(private r: Renderer2) {} } @Component({ SELEctor: 'my-app',templateUrl: `./app.component.html`,providers: [service] }) export class AppComponent { constructor(private service: servicE) {} }
以上是大佬教程为你收集整理的在Angular 4中使用Renderer全部内容,希望文章能够帮你解决在Angular 4中使用Renderer所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。