4

使用ASPNet Angular SPA模板我试图导入NGX图表,但它们不适用于服务器端预渲染。所以我试图通过将NGX图表模块导入app.module.browser.ts来让它们呈现客户端。仅将角色标记为客户端角度通用

但是我得到的模板解析错误,当我做到这一点:

无法绑定来“观察”,因为它不是“已知属性NGX-图表 - 高级 - 饼图”。

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

或者,有没有一种正确的方式来引用角度通用应用程序中的NGX图表?

回答

3

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

的解决方法是从app.module.server.ts排除模块和导入虚拟模块,而不是存根都从原来的模块单元,或者至少当前应用程序中使用的那些:

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

如果有无法从原始模块导入的使用提供程序,它们也应该被删除。

伪组件和伪指令的替代方法是使用custom schemaNO_ERRORS_SCHEMA的使用是不希望的,因为它也会抑制有用的错误。

+0

嗨@estus,我不认为你知道任何一个NGX图表的完整例子,我这​​样做,并开始得到消息“SVG未找到” – gmn

+0

我不确定这个消息在你的情况下指的是什么。我建议调试应用程序,以使其显而易见消息来自何处,尽管正在讨论的模块被扼杀。通过包含node_modules的代码库搜索'SVG not found'或'not found'可能会有所帮助。如果可以,请考虑提供http://stackoverflow.com/help/mcve。 – estus