javascript - 如何: Get Durandal (or Backbone) router history and pass to window.一些全局变量?

标签 javascript backbone.js durandal hottowel durandal-2.0

我正在尝试扩展这个方便但基本的反馈小部件: http://experiments.hertzen.com/jsfeedback/

它位于窗口命名空间中并 POST 到 Blob 服务器。我希望能够查看我的 Durandal 应用程序的路由器历史记录,并使用我的常规反馈对象发送回快照。

有人可以建议如何做到这一点吗?

注意:由于 Durandal 2.0 路由器与 Backbone.js 类似,因此 Backbone 开发人员的建议也可能会有所帮助。

我正在考虑这样的事情:

durandalRouter.on('路由器:导航:组合完成') .then((实例: 字符串, 指令: DurandalRouteInstruction, 路由器: DurandalRouter) => { //待办事项:跟踪历史记录... });

最佳答案

你基本上已经得到答案了。您可以实例化一个数组,最好作为模块,但也可以作为全局变量:

window.appHistory = [];
然后。您可以在路由器上设置事件监听,将指令参数附加到历史记录中。

router.on('router:navigation:complete')
    .then(function(instance, instruction, router) => {
        appHistory.push(JSON.stringify(instruction));
    };

指令对象看起来像这样。

{
    "fragment": "",
    "queryString": null,
    "config": {
        "title": "Home",
        "route": "",
        "moduleId": "viewmodels/home",
        "hash": "#",
        "routePattern": {}
    },
    "params": [],
    "queryParams": null
}

关于javascript - 如何: Get Durandal (or Backbone) router history and pass to window.一些全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28552145/

相关文章:

javascript - 使用 JavaScript 在 DIV 中旋转内容的最佳方式?

javascript - 如何在backbone.js中的 View 方法中定义 View 元素?

css - 使用 Bootstrap 流体样式时,Durandal/Hot Towel 模板将 body max-width 设置为 1100px 的原因是什么?

javascript - 如何在 Durandal 中禁用缓存 View

javascript - CSS - 翻转图像

javascript - react rails : component does not re-render after record created

javascript - 缺少/api/v2/users/{id} 的身份验证 Auth0

javascript - 显示点击菜单项

javascript - 具有多个元素的主干更改类

javascript - 如何将 list.js 与 Hot Towel 模板一起使用