问题标签 [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 投票
1 回答
1134 浏览

javascript - 在 Durandal 应用程序中处理视图的加载超时

我有一个 Durandal 应用程序,在尝试加载视图时会定期超时。这是一个示例超时错误:

如果您查找提供的 URL,它会提示一些可能的问题:

  • 列出的模块中的脚本错误
  • 路径配置不正确
  • 多个模块 ID 映射到同一个文件

这些都不是我的问题。这是一个真正的、真正的超时。由于某种原因,它无法加载视图文件。

有一些关于处理错误的 RequireJS 文档......但是在阅读了很多次之后,我仍然无法弄清楚如何在我的视图模块上捕获加载超时。

理想情况下,我想做的是a)延长超时时间或b)给用户一个通知并允许他们再次尝试加载视图。

现在发生的情况是视图无法加载,并且用户没有收到任何错误反馈——“请稍候,加载”对话框消失,因为 AJAX 请求完成,但视图没有改变。

0 投票
1 回答
5686 浏览

durandal - Durandal 2.0 - 用于嵌套菜单的子路由器?

我正在构建一个应用程序,并希望显示一个 2 层菜单,这两个层始终可用。Durandal 2.0推出了他们的新路由器,它支持“子路由器”,可以更轻松地进行深度链接。

我的问题- 我可以永久加载我的“子”导航路线(并在父不活动时呈现子菜单),还是“子路由器”设计旨在延迟加载它们以在深度链接时评估它们被评估?

Durandal 示例显示主导航注册一个 splat 路由,然后在加载/激活该视图模型时,注册子路由器。

例如:在 Durandal 2.0 提供的示例中,mian nev 注册在shell.js

然后ko/index.js视图模型注册孩子(on activate()

而我希望在一个地方定义我的路线,例如:

我正在努力的部分是注册子路线,并在导航到它们时让它们正确评估。(渲染菜单将在稍后进行......)

我在让这个导航渲染时遇到了各种错误。尝试计算哈希(来自未激活的父级或子级)时,主要是内部 router.js 错误 - 因此已定义所有哈希。

一旦我得到它来映射导航,子路线似乎无法访问 - 它们只是加载主 splat 页面而没有错误。

所以我想知道我是否以正确的方式去做这件事?(预先注册所有子路由,目标是渲染一个 2 层菜单)。

我认为后备是使用类似Durandal 1.2 answer about subrouting的东西,使用平面路由注册、自定义“isSameItem”函数和计算的 observables 的组合来呈现 2 层导航。

0 投票
1 回答
103 浏览

javascript - Durandal 2.0.1,Tryactivate 一次又一次地被调用

我正在为我的应用程序使用 Durandal 2.0.1。

我正在使用下面的 html 代码来编写视图和视图模型。

我面临的问题是,每当我尝试切换上述 div的可见性时,都会一次又一次地调用tryactivate 。这是预期的行为还是我做错了什么。任何人都可以告诉/解释为什么会发生这种情况,如果这是一种已知的行为。

谁能解释一下为什么会这样。

提前致谢。

0 投票
2 回答
558 浏览

durandal - 使用 Durandal 的子视图合成

我有一个视图,它由另一个具有添加/编辑功能的视图(子视图)组成,现在我想使用路由,以便在单击添加新视图(添加)时显示替换原始视图,我尝试使用子视图路由器,但它不工作...

Shell 是我设置路由器以将用户带到 Pulse 视图的第一个视图——

现在在我的脉冲视图 HTML 中——

在视图模型(.js)文件中我有——

因此,当我尝试导航到新任务视图时,任务列表根据 HTML 中的 KO 绑定绑定在脉冲视图中,但现在在任务列表视图模型中——

我收到“找不到路线”错误,请帮助

0 投票
2 回答
930 浏览

knockout.js - 使用淘汰赛和杜兰达尔的动态构图不起作用

我在使用 Durandal/Knockout 时遇到了一个奇怪的问题。在某些情况下,绑定无法正常工作。我已经简化了这个问题中出现的情况。

我在代码中的某处设置组合信息,例如:

这是我的观点:

在第一次,组合工作正常。但是在下一次compositionInfo更改时(使用相同的行和代码的相同位置),什么也没有发生。

第一次["Activating",...]在日志窗口中有一个。但是在第二次没有这样的日志或["Binding"]日志。

我跟踪了 Durandal 和 Knockout 代码,发现knockout-2.3.0.debug文件中有一个evaluateImmediate()函数在第一次运行此行(正确的):

并导致合成开始激活模型。

但是当它不起作用时,evaulateImmediate()它会通过以下代码返回上面的一些行:

这段代码是干什么用的?如果我评论这些行,一切正常

此问题因计算机而异。在大多数情况下,在我的计算机上它只是第一次工作。但在其他计算机上,它大部分时间都可以工作,大约 3/10 情况下会失败。

仅供参考,我正在使用 Durandal 1.1.1 和 Knockout 2.3.0

0 投票
1 回答
50 浏览

javascript - 控制视图模型中默认转换的激活

我的问题很简单,不需要特别解释。

在 Durandal 中,是否可以控制在从/到视图模型切换时是否使用过渡?

我希望能够停用动画的原因如下:

quicksearch.js我的外壳/母版页中有一个搜索表单模块,可以从任何地方访问。它所做的是验证输入,然后简单地重定向到结果页面results.js,在散列后通过 URL 中的搜索参数。results.js负责查询服务器。

当在quicksearch.js除 以外的页面上使用模块时results.js,会触发动画并且它是所需的行为。但是,当 onresults.js和 using时quicksearch.js,URL 中唯一变化的是参数字符串(哈希后的模块名称保持不变)。尽管如此,这仍然经历了results.js再次激活的所有生命周期,从results.js到动画results.js,这看起来很糟糕。

那么,有什么方法可以在某种条件下阻止 Durandal 对内容进行动画处理,而只是组合和绑定视图?

0 投票
2 回答
292 浏览

durandal - Durandal 三级子路由

我正在尝试在Durandal.js中制作子路由器的子路由器,但出现随机愚蠢错误(例如 404 等)。是 Durandal 的问题(我的意思是如果它没有三级子路由支持)还是我的代码问题?

谢谢


无论如何,我将在此处包含我的代码:

返回2 级孩子

返回3 级孩子

0 投票
1 回答
1504 浏览

knockout.js - 使用 DurandalJS/Router 从 Shell.html 获取当前页面的标题

我试图找到当前页面的标题(导航)......对我有用的唯一方法是:这有点难看。

一个更好的方法是这个......但我不知道当前的索引页面

有什么建议可以更好地解决这个问题???

0 投票
1 回答
958 浏览

durandal - 如何将 Splat 路线设置为默认路线 Durandal 2.0

我的默认路由有子视图,如果可以,我可以在 Durandal 2.0 中将 Splat 路由设置为默认路由吗?

});

0 投票
1 回答
237 浏览

durandal - durandal.router isNavigating 属性奇怪的错误

我使用 durandal 路由器在页面加载时显示一个旋转图标。这是使它出现或隐藏自身的代码:

但是,我想把它放在我的导航中,如下所示:

这会在 chrome 的开发人员工具控制台窗口中引发消息“路由器未定义”。

但如果我使用上面的第一个片段,一切正常。

有任何想法吗?