Angular 2跨模块开闭组件设计

时间:2017-02-14 11:08:56

标签: angular

假设我的应用程序模块A为ToDo-List组件B导入另一个模块CB导出CA导入BC可以通过选择器在A中使用。

当我将列表项添加到我的待办事项列表C时,如果文本字段为空,则会显示错误消息。

如果C应该支持i18n并且我们不希望错误消息成为B的一部分,但A应该提供它们,该怎么办?

通过组件输入

运行时注入

可以在I中声明一个接口B,以实现O中实现I注入的任何对象A via component input属性todoListI18nC期望给出一些I来翻译技术错误名称。

interface I {
    getMessageFromErrorCode(errorCode: string): string;
}

通过令牌注入(我不知道这是否可以跨模块)

也许B声明接口I模块A必须实现为服务S并通过令牌TC请求提供I来自令牌T

interface I {
    getMessageFromErrorCode(errorCode: string): string;
}

如果我说而不是1:C不应该处理错误字符串,而应该处理显示错误的A组件,该怎么办?

组件注入

如果出现错误,C将显示实现E中声明的接口I的组件BE通过令牌A提供T,并通过令牌C注入T。至少E是通过组件加载器加载的吗?

如果我想将样式问题留给A

,该怎么办?

忽略角度组件封装

使用css类模板/占位符是个好主意; BC中没有样式信息,但A应该定义那些全局的css类?

所以问题是Angular2中是否可以创建跨模块的开放封闭组件并且是否有一些最佳实践?

谢谢!

0 个答案:

没有答案