5

使用 ASPNet Angular SPA 模板我正在尝试导入 NGX-Charts,但它们不适用于服务器端预渲染。所以我试图让它们只通过将 NGX 图表模块导入 app.module.browser.ts 来呈现客户端。

但是,当我这样做时,我收到了模板解析错误:

无法绑定到“视图”,因为它不是“ngx-charts-advanced-pie-chart”的已知属性。

是否有正确的方法将组件标记为仅在浏览器中呈现?如果有的话,这似乎没有很好的记录。

或者,是否有正确的方法在角度通用应用程序中引用 NGX-Charts?

4

1 回答 1

3

此问题适用于任何未针对服务器端渲染进行优化的第三方模块。

解决方法是从模块中排除模块app.module.server.ts并导入一个虚拟模块,而不是从原始模块中存根所有单元,或者至少是应用程序中当前使用的单元:

@Component({ selector: 'ngx-charts-advanced-pie-chart' })
class DummyAdvancedPieChartComponent {
  @Input('view') view;
}

如果正在使用的提供程序无法从原始模块导入,则它们也应该被存根。

虚拟组件和指令的替代方法是使用自定义模式。的使用NO_ERRORS_SCHEMA是不可取的,因为它也会抑制有用的错误。

于 2017-10-13T11:35:39.667 回答