【发布时间】:2018-04-17 06:24:57
【问题描述】:
在我的应用程序中,我有很多简单的数据模型类。例如
export class Client {
first_name: string;
last_name: string;
fullName(): string {
return `${this.first_name} ${this.last_name}`;
}
}
请注意,这不是 ClientService 提供者类。这些是在整个应用程序中使用的核心模型类。现在我想实现延迟加载的 ng 模块。 Angular docs 描述了如何共享组件、提供者、指令和管道。然而,有关于简单(非注释)类的注意事项。 Heros 示例有 an exported model class,但未在其模块之外使用。
我猜根模块应该导入所有模型类。然后功能模块应该只导入模型类声明。加载所有模块后应该有一个fullName() 方法定义。这是否意味着我应该为模型类定义一个模块?是否可以对非注释类执行此操作?
更新:我检查了 dist 目录中的文件。事实证明,客户端类方法不包含在延迟加载模块 (*.chunk.js) 中。但这是如何工作的? Angular/Webpack 如何知道哪些类应该打包到 main.bundle.js 中,哪些打包到 chunk.js 文件中?
【问题讨论】:
-
我也有同样的问题。最后,您会在设计、清晰度、便利性和可扩展性方面推荐哪种解决方案。所有常见模型的单独共享模块是最合适的解决方案吗?我担心的是,如果我的延迟加载模块依赖于根模块中定义的模型,则它们是不可重用的。
标签: angular lazy-loading datamodel