【问题标题】:Durandal - Activate viewmodels without the routerDurandal - 在没有路由器的情况下激活视图模型
【发布时间】:2015-12-19 04:15:51
【问题描述】:

我有以下模块设置:

  • 外壳(有路由器)
    • 工作区模块
      • 屏幕1
      • 屏幕2

我希望工作区显示几个不同的视图,从中收集信息,并将一些数据发布到我的 api。我已经开始在工作区上安装一个子路由器,但这意味着屏幕是如此解耦的,我无法访问屏幕视图模型对象。这意味着我无法向工作区传达他们已经完成了他们需要做的事情。我还担心各种视图模型的“生活方式”——我会做类似import workspace = require('workspaceViewMode'); 的事情,但我不确定会得到什么工作区实例。

什么是正确的方法?子路由器实际上是最好的方法,还是我应该尝试直接使用“激活器”(为此苦苦挣扎)?

【问题讨论】:

    标签: single-page-application durandal


    【解决方案1】:

    通过尝试并仔细阅读文档,似乎确实因为工作区有一个子路由器,所以它的实例在导航期间会一直存在。我通过让它在激活时为自己分配一个 guid 并在每个屏幕视图模型中的导入实例上检查该 guid 来对此进行测试。

    所以我的解决方案是在工作区提供方法供屏幕调用,然后工作区将决定如何处理它们。

    呼!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多