Durandal 中不同类型用户的多个 Shell(视图和视图模型)和路由器

Multiple Shells (views and view models) and routers for different type of users in Durandal

所以我正在尝试构建一个具有两种不同类型用户的应用程序,即客户和卖家。该应用程序的设计方式使它们都具有不同类型的导航栏并通过路由访问不同类型的页面。因此,我想看看实现这一目标的最佳方法是什么?我正在考虑以下任一解决方案: 1. 在我的 shell.html 中使用组合绑定或区域,并通过拥有一个容器并根据特定条件,将注入正确的特定视图(部分视图)并且默认绑定上下文将是一个公共 shell.js.但是,导航栏和显示的每个导航面板由具有

的路线决定
nav:true

卖家和客户都有不同的路线,这些路线被标记为 nav:true。如果我们使用这种方法,有没有办法解决这个限制? 2. 使用组合绑定,但有两个不同的视图和视图模型,我们将它们绑定到 shell.html 和 shell.js。也就是说,会有两个路由器。但是,我读过很多关于拥有两个路由器的帖子,显然不建议在一个应用程序中拥有多个主路由器。我应该采用另一种方法来解决这个问题吗?我曾考虑过拥有多个 SPA,但我认为这样做效率不高,因为这是一个移动应用程序。非常感谢任何帮助或建议!

您可以简单地开发两个独立的 SPA,但让它们共享大部分相同的代码库。使用这种方法,除了您负责模块化代码以供重用之外,没有什么特别的事情要做。

这种方法还可以消除在整个过程中合并大量逻辑以根据当前登录的用户来减少、trim 或扩充 Web 应用程序的需要。