Angular中的DI是否涉及任何外部资源?

时间:2019-04-16 06:30:21

标签: angular dependency-injection

我正在发现Angular 7,并且想知道如何以最佳方式使用DI。

我的问题基本上是:应该注入给定组件所需的任何对象吗?

我很确定答案是否定的。我的意思是,肯定必须注入服务,因为这只是通常的模式。

但是,例如,如果某个组件需要一个帮助程序类,则应该注入此类,就像这样:

import {CameraDimensionsHelper} from <file path>;

constructor (private cameraDimensions: CameraDimensionsHelper) {}

...或者应该在需要时以更“经典”的方式实例化它,例如:

import {CameraDimensionsHelper} from <file path>;

private myMethod() {
  const cameraDimensions = new CameraDimensionsHelper();
}

谢谢您的建议。

1 个答案:

答案 0 :(得分:-1)

这取决于助手类的用法。如果助手是特定于单个组件的,则可以创建Class的实例。如果帮助程序类将实用程序方法提供给多个组件,则最好将其设置为@Injectable()并使用DI。