在angular4中使用Renderer2 - 无法将其添加到导入数组中

时间:2018-03-21 11:44:18

标签: angular

如果我在角度4的shared.module中使用import { Renderer2 } from '@angular/core';, 为什么我也不能在导入数组中添加它,例如:

@NgModule({
    imports: [
        Renderer2,
  ...
 ]

在导入中添加它会产生错误。这就是我需要Renderer2的原因:

myComponent.html(我的shared.module的一部分):

<input #searchElem type="text">

myComponent.ts

 constructor(private renderer: Renderer2) {
    }

const element = this.renderer.selectRootElement('#searchElem');
setTimeout(() => element.focus(), 0);

这样做是为了能够设置元素的焦点。

2 个答案:

答案 0 :(得分:1)

Renderer2是Angular核心的可注射(服务)部分。它不是一个模块。 import property in @NgModule is to import other modules。{{3}}。您应该能够以组件方式使用Renderer2,但只需将其从模块导入中删除即可。

答案 1 :(得分:0)

imports

imports描述了此模块具有的依赖项。 如果您的模块依赖于其他模块,请在此处列出。示例

 imports: [
    BrowserModule, HttpClientModule,DataTableModule, AppRoutingModule,
  ],

简短的回答是,如果你要去,你会在你的NgModule的导入中添加一些东西 在模板中使用它或使用依赖注入

import语句用于导入其他打字稿文件和类

import {className} from 'filePath';