使用ASPNet Angular SPA模板我尝试导入NGX-Charts,但他们不使用服务器端预渲染。因此,我只是通过将NGX图表模块导入app.module.browser.ts来尝试使它们渲染客户端。
但是,当我这样做时,我收到模板解析错误:
无法绑定到'查看'因为它不是  ngx-charts-advanced-pie-chart'的已知属性。
是否有正确的方法将组件标记为仅在浏览器中呈现?如果存在,这似乎没有得到很好的记录。
或者,是否有正确的方法在角度通用应用程序中引用NGX-Charts?
答案 0 :(得分:3)
此问题适用于未针对服务器端呈现进行优化的任何第三方模块。
解决方法是从app.module.server.ts
中排除模块并导入一个虚拟模块,而不是从原始模块中存根所有单元,或者至少是应用程序中当前使用的单元:
@Component({ selector: 'ngx-charts-advanced-pie-chart' })
class DummyAdvancedPieChartComponent {
@Input('view') view;
}
如果正在使用的提供程序无法从原始模块导入,则它们也应该存根。
虚拟组件和指令的替代方法是使用custom schema。使用NO_ERRORS_SCHEMA
是不可取的,因为它也会抑制有用的错误。