何时应该在Angular 2项目中使用@Input与@Injectable?例如,如果我有一个对象(没有方法)多个组件进行更改,我可以:
您如何决定走哪条路?特别是因为使用Injectables,您不必处理如何将输入数据传递给子组件的层次结构。
答案 0 :(得分:1)
除非它是一个非常简单的对象,否则我几乎总是倾向于使用Injectable类和依赖注入。直到第一个ngOnInit()生命周期钩子才会解析输入,因此至少一个Injectable类将提供更可预测的行为。创建输入链以将某些内容传递到多个级别是一个好兆头,您应该使用服务/注入。使用可注射类,您可以将它注入任何需要它的地方,而不必担心父组件也可以使用它。
答案 1 :(得分:0)
首先,让我们了解@Input
和@Injectable
背后的概念:
两者都是元数据,它的意思是什么? 建筑外观是您必须在代码中添加元数据,以便 Angular知道该做什么。
(组件注入)为什么@Input
和@Output
?
输入属性通常接收数据值。 输出属性公开事件生成器,例如EventEmitter对象。
(依赖注入)为什么@Injectable
?
@Injectable()将一个类标记为可用于实例化的注入器。一般来说,在尝试实例化未标记为@Injectable()的类时,注入器会报告错误。
有关您如何使用的更多信息和示例: @Input @Injectable