Html 如何在Angular 2应用程序中处理不同的客户版本?
我们正在开发SaaS应用程序,目前面临着不同客户要求不同定制的情况。我已经在谷歌上搜索并阅读了很多关于这方面的专门文章。我也很熟悉 但是这仍然让我对Angular 2+应用程序的一个好概念感到困惑。业务逻辑不会成为问题,因为我可以使用Angular的依赖注入为不同的客户加载和使用定制服务。此外,主题本身并不是一个问题,因为我们使用了一个很好的主题引擎内置。让我头疼的是模板本身。当然,我可以在HTML模板中使用Html 如何在Angular 2应用程序中处理不同的客户版本?,html,angular,architecture,multi-tenant,theming,Html,Angular,Architecture,Multi Tenant,Theming,我们正在开发SaaS应用程序,目前面临着不同客户要求不同定制的情况。我已经在谷歌上搜索并阅读了很多关于这方面的专门文章。我也很熟悉 但是这仍然让我对Angular 2+应用程序的一个好概念感到困惑。业务逻辑不会成为问题,因为我可以使用Angular的依赖注入为不同的客户加载和使用定制服务。此外,主题本身并不是一个问题,因为我们使用了一个很好的主题引擎内置。让我头疼的是模板本身。当然,我可以在HTML模板中使用*ngIf和*ngSwitch,但这正是我想要避免的代码类型,因为一旦达到50多个客户版
*ngIf
和*ngSwitch
,但这正是我想要避免的代码类型,因为一旦达到50多个客户版本,它将变得可怕
让我们举一个真实的例子。在搜索页面上,所有客户都可以搜索对象并将单个对象导出为文件下载。一位特定客户要求以专有文件格式实现大规模导出,这需要在页面中添加一个新按钮,而其他客户显然不应该看到这个按钮
对于这个场景,我能想到的三个选项(我真的不喜欢其中任何一个)如下所示:
*ngIf
和/或*ngSwitch*
display:none;
)因此,我们的方法是扩展现有的许可数据库,使其也包含特定于客户的功能,显然,只有该客户才拥有许可证。现在,简单的解决方案是拥有一个许可证端点并获得客户已获得的所有许可证,然后每个可选功能都可以放在一个简单的
*ngIf
中。我很欣赏这是一个简单而干净的解决方案,但它提供了了解我们公司其他客户的一些业务事实的可能性(通过不混淆代码和查找其他端点等)。因此,将其与服务器端渲染相结合可能是我目前能想到的最佳解决方案。当然,我没有一个完全适合您的场景的明确解决方案,但这里有一个想法
我希望这能有所帮助。你好,Sameh!谢谢你的回答。我从中得到了一些灵感来编辑我的问题。基本上,您的答案是它的基础,拥有一个配置(或授权数据库)并使用原子组件。我已经投了赞成票,但在接受之前,我会等待更多的答案。干杯