假设我的应用程序模块A
为ToDo-List组件B
导入另一个模块C
。 B
导出C
和A
导入B
,C
可以通过选择器在A
中使用。
当我将列表项添加到我的待办事项列表C
时,如果文本字段为空,则会显示错误消息。
C
应该支持i18n并且我们不希望错误消息成为B
的一部分,但A
应该提供它们,该怎么办?运行时注入
可以在I
中声明一个接口B
,以实现O
中实现I
且注入的任何对象A
via component input属性todoListI18n
和C
期望给出一些I
来翻译技术错误名称。
interface I {
getMessageFromErrorCode(errorCode: string): string;
}
通过令牌注入(我不知道这是否可以跨模块)
也许B
声明接口I
模块A
必须实现为服务S
并通过令牌T
和C
请求提供I
来自令牌T
?
interface I {
getMessageFromErrorCode(errorCode: string): string;
}
C
不应该处理错误字符串,而应该处理显示错误的A
组件,该怎么办?组件注入
如果出现错误,C
将显示实现E
中声明的接口I
的组件B
。 E
通过令牌A
提供T
,并通过令牌C
注入T
。至少E
是通过组件加载器加载的吗?
A
?忽略角度组件封装
使用css类模板/占位符是个好主意; B
和C
中没有样式信息,但A
应该定义那些全局的css类?
所以问题是Angular2中是否可以创建跨模块的开放封闭组件并且是否有一些最佳实践?
谢谢!