Json 有没有办法在编译时而不是运行时获取*ngFor的角度模板?

Json 有没有办法在编译时而不是运行时获取*ngFor的角度模板?,json,angular,optimization,vscode-extensions,Json,Angular,Optimization,Vscode Extensions,问题: 我们有很多不同的项目,其中在角度视图中使用自定义表。表本身不是用JSON或API的外部数据创建的。对于每个项目,它是静态的,我们确切地知道我们必须创建什么 要实际创建表,我们有两个选项 备选案文1: 用HTML创建整个表。 这将在HTML中创建一个庞大的2K+行代码 备选案文2: 创建一个简单的HTML模板文件,不超过50行使用ngFor指令的代码,并向其传递一个JSON对象,该对象可能位于TS文件中,JSON将是巨大的(2K+行或可能是大量对象) 利与弊: 选项1对于开发人员来说很困

问题: 我们有很多不同的项目,其中在角度视图中使用自定义表。表本身不是用JSON或API的外部数据创建的。对于每个项目,它是静态的,我们确切地知道我们必须创建什么

要实际创建表,我们有两个选项

备选案文1: 用HTML创建整个表。 这将在HTML中创建一个庞大的2K+行代码

备选案文2: 创建一个简单的HTML模板文件,不超过50行使用ngFor指令的代码,并向其传递一个JSON对象,该对象可能位于TS文件中,JSON将是巨大的(2K+行或可能是大量对象)

利与弊:

  • 选项1对于开发人员来说很困难,因为有大量的复制粘贴和更改,并且需要进行大量不必要的工作,而且更改某些内容也是一件令人头痛的事情,因为我们必须对所有的行和列进行更改,但是当涉及到性能时,这会好得多,因为所有内容都在编译时出现,而在运行时则没有做任何事情
  • 选项2更易于阅读和维护,在一个地方更改某些内容更容易,而且它会处理所有实例,但是,由于DOM实际上是在运行时而不是编译时创建的,因此可以说这不是最佳方法,因为它会带来性能开销。此外,在每次生命周期更改时,它都会检查DOM,以确保它是否需要更改或更新,而我确信这在我的情况下是不需要的。(我不能只使用推式更改检测器策略,因为该视图中的其他项不允许我这样做)
我希望有一个解决方案能够兼顾这两个方面的优势——所有内容都是在编译时创建的,但是在HTML不像选项1那样大的地方,很容易维护和编辑

我有一些可能的想法来解决这个问题:

  • 创建一个VS代码扩展,当我传入模板和JSON时,它将为我提供编译后的HTML。使它类似于我以前使用的一个Sublime包,在angular开始直接支持.styl文件之前,我曾在每个保存方式上将.styl文件自动转换为.css。手动运行它应该很容易,但是在更新JSON时,让它足够高效地直接更新编译的HTML可能有点困难,或者需要考虑一些事情

  • 在VS代码外创建一个工具,以执行与第1点相同的操作。这肯定不会自动更新HTML,因为在开发过程中更改JSON后,我必须再次运行该工具

  • 使用咕噜声、咕噜声或猛击声来达到同样的效果

  • 任何关于我应该采取什么方法的帮助或信息,或者如果已经有什么东西可以帮助我实现上述目标,都将是非常好的

    注意:由于项目的复杂性,AOT构建对于我们来说是不可能的,因为我们使用highcharts并且在实现AOT构建时遇到了困难