问题标签 [durandal-navigation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
52 浏览

javascript - 每个子导航都会调用父母的停用和激活

最近我们将我们的一个应用程序从 2.0.1 更新到 2.1.0,我们看到子路由器和孙子路由器的一些非常不同的行为。

当我们在同一个父级的子路由之间导航时,父级的停用,激活然后最终子级的页面激活被调用。

同样,如果我在孩子和孙子之间导航,则首先调用主父级的停用和激活,然后在调用孙子的实际激活所有这些事情之后调用子页面的停用和激活。

我尝试查看所有文档、路由器代码和激活器代码,但找不到任何相关内容。

这是大子路由器配置:

empDetails.js

提前致谢...!!!!

0 投票
1 回答
32 浏览

durandal - Durandal 子路由器只更新一次绑定

childRouter我创建的路由器成功构建了一个导航模型,但是缺少更新一些绑定,每次在该( app.pageTitle, app.pageDescription)中加载页面时都需要更新这些绑定。

有没有办法将这些更新映射到 Durandal 的生命周期,比如activate事件?

0 投票
1 回答
117 浏览

javascript - 覆盖现有实例的方法

我正在尝试扩展已经在 RequireJS 的帮助下创建的现有 Durandal 路由器插件实例。

map()应该重写该方法以添加额外的映射参数。

我应该如何从修改后的方法访问原始方法?

index.js

childRouter.js

0 投票
1 回答
1049 浏览

javascript - Durandal 激活,子路由器的分离事件永远不会被触发

使用以下 Durandal子路由器插件配置时,我没有收到Durandal 生命周期中描述detached的和activate事件,而其他事件有效。

它是一个单页应用程序,其中包含容器的childRouter控制内容。div每个childRouter对应一个模块,一次应该只有一个attached,而其他应该是detached.

该应用程序为每个模块使用单独的childRouter实例,我希望每次发生两个模块之间的导航时都会触发detachedandactivate事件(即moduleOLDshould getdetachedmoduleNEWshould get attached)。

文档说 Durandal 生命周期事件是自动触发的:

以绿色突出显示的行将在撰写时始终执行。

它不能以这种方式工作,这可能是由以下原因引起的:

  • 子路由器没有收到关于彼此连接/分离的通知(即需要订阅某些事件)
  • 子路由器的工作方式与父路由器不同

看来我必须手动分离某些东西,或者通知正在更换的路由器,才能触发detachedactivate.

如何触发detachedactivate事件childRouter

输出(无错误):

0 投票
1 回答
78 浏览

javascript - Durandaljs 路由器在 Firefox 中不考虑“trigger: false”参数而重新加载页面

我需要修改 url 哈希,但不重新加载页面(不触发模块激活),所以我这样做:

或者

两者都适用于除 Firefox 之外的所有浏览器。我的 Firefox 版本是 44.0.2。

有没有人遇到过这种行为?有解决方法吗?

编辑

由于我没有通过 durandaljs 提供解决方案,因此我只是使用了

0 投票
0 回答
89 浏览

durandal - 从 Durandal 中的激活回调返回承诺后如何处理后退按钮

我们正在使用 Durandal 2.1 开发移动应用程序

文档说明我们可以从激活回调中返回一个承诺,并且它应该在失败时取消导航。

我们一直在尝试使用该功能,但它破坏了我们应用程序中的后退按钮。

正如您在 Durandal 的router.js插件代码中看到的那样,该函数cancelNavigation正在导航lastUrl

由于这种行为,在导航取消后使用后退按钮将不会提供预期的结果,因为它将导航回导致错误的页面。

我们是否以错误的方式使用此功能?

我们的目标是尝试在激活函数中加载数据,然后在出现错误时导航回当前页面。

非常感谢有关此 Woule 的任何帮助。

0 投票
1 回答
45 浏览

javascript - Durandal: Defining the same viewmodel (control) as two different variables

So I've created a scroller control that I want to use in two different places within the same viewmodel for example:-

The control loads fine on both instances where mainScrollControl and modalScrollControl is populated however, the data is being shared (modify the scroller position in the modal and its also modified on the main page) even though the controls are defined separately. It seems like mainScrollNav and modalScrollNav link to a single service viewmodel as opposed to being independent viewmodels. Am I going about this right way or should I be using something else?

0 投票
1 回答
194 浏览

javascript - Durandal 儿童路由器未找到视图

在我进入这个问题之前,这里是我的项目结构的概述

现在我在 Product1 中设置了一个名为 mywork 的部分,其中包含一个子路由器。shell.js 中的核心路由是使用 splat 设置的。

然后子路由被创建为

主要问题是,当通过导航栏访问任何页面时,我都会收到错误消息......

然而,概览页面的视图工作正常,由路线 [''] 定义。关于为什么我的其他视图没有找到的任何想法,即使视图模型是并且什么是文本!在错误的路径之前?

0 投票
1 回答
309 浏览

asp.net-mvc - 使用 MVC 区域的多个 SPA - 导航外部 SPA 路由器路由

当想要在路由器中设置的路由列表之外导航时,如何逃避客户端路由?

我使用 Durandal.js 创建了一个项目,并在不同的区域内创建了 SPA。我遇到的问题是,当我想在当前 SPA 之外导航并进入另一个或说回到整个应用程序的主页时,这根本不是 SPA,而只是一个 cshtml 页面。

我试图做的是使用 Durandal 的 mapUnknownRoutes 处理程序进行拦截,然后使用 window.location.href 导航出去。这可行,但是当我想进入应用程序的主页(“/”)时,路由器会匹配 SPA 的“根”并且不会导航到主页,而是导航到 SPA 的根路由。

此示例中的区域路由是“/spaHome”,其 MVC 路由如下所示:

这是我为设置 Durandal 路由器所做的工作:

任何指向正确方向的指针或线索将不胜感激!

0 投票
1 回答
47 浏览

durandal - durandaljs 可以有多个 shell.js 吗?

在 DuraldalJS(称为 A)编写的一个更大的项目中,我有 3 个 SPA。A 可以为每个 SPA 加载 3 个 shell.js 吗?谢谢。