gpt4 book ai didi

javascript - Durandal:找不到 view/viewModel 时处理 RequireJS 错误

转载 作者:行者123 更新时间:2023-11-28 20:12:22 25 4
gpt4 key购买 nike

是否可以将路由添加到 Durandal 以便在导航中显示它们,但在找不到它们时优雅地处理 RequireJS 错误?

例如:如果我们有 4 页 - 其中两页正在进行中,但下个月将完成 2 页:

router.map([
{ route: ['', 'home'], moduleId: 'test/index', title: 'Almost finished', nav:
{ route: 'one', moduleId: 'test/one', title: 'In progress', nav: true },
{ route: 'two', moduleId: 'test/two', title: 'Still to be complete', nav: true },
{ route: 'three', moduleId: 'test/three', title: 'Validation test', nav: true }
]).buildNavigationModel()
.activate();

router.mapUnknownRoutes方法只会处理不在路由器中的路由 - 例如:可以为 'test/doesntexist' 提供优雅的记录器消息,但将为 'test 提供 JS 错误(并使应用程序崩溃)/三'

最佳答案

RequireJS 确实提供了一种处理尝试加载模块时发生的错误的方法。您可以为每个模块提供特定的处理程序,也可以设置全局错误处理程序。

请参阅此链接了解更多信息:http://requirejs.org/docs/api.html#errors

如果您使用加载失败处理程序,则可以提供应返回的后备或默认模块。 - 当然,当与 Durandal 一起使用时,这可能会导致 Durandal 寻找不同的 View ,或者根据 Durandal 何时派生 View ID,您可能最终会得到不匹配的 View / View 模型对。

如果您使用全局处理程序,则必须采取一些纠正措施,例如在失败时将窗口位置更改为不同的 URL。

关于javascript - Durandal:找不到 view/viewModel 时处理 RequireJS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com