我有一个在其中一个视图中使用 Google 地图的应用程序。这是一个 SPA,它使用约定的 Durandal 的视图/视图模型文件结构。我要解决的问题是共享地图视图(谷歌地图)的功能模式非常多样化。例如,应用程序需要在地图上显示车辆的当前位置,能够显示车辆的历史信息(路径),并允许创建、编辑和删除地理围栏。使用地图的每种模式都需要隐藏一些 UX 控件,而使其他控件可见。
我相信,当上述所有视图模型逻辑代码都到位时,视图模型将变得非常大,因此难以维护和编码。我试图避免拥有一个巨大的视图模型文件,其中包含所有这些 UX 控件的逻辑。
从概念上讲,我希望多个视图模型文件与单个视图文件无缝协作,因此我不必在多个视图中重复谷歌地图。另外,如果可能的话,我想使用 Knockout 来保持简单/自动绑定。在维护单个视图文件的同时,使用 Durandal 分解大型视图模型文件有哪些解决方案?这是可能的,甚至是可取的吗?