我正在尝试将durandal.js用于单页架构,
我已经有了应用程序,我在div = old方法中加载所有页面,用于单页面架构,
我想要做的是当我点击页面时我需要打开hotspa页面,
现在我写这样的东西。 www.xyz.com#/细节,
其中#details是我的durandal view page!
当我把<a>
herf ....#/ details,我得到这样的错误:
http://postimg.org/image/hoeu1wiz5/
但是当我使用相同的网址刷新时,它工作正常,我能够看到视图!
我不知道为什么会出现这个错误
答案 0 :(得分:0)
如果你在Durandal的2.0版本之前使用任何东西,你就会得到这个,因为在你的Shell.js中你没有定义路由器,或者你对路由器模块的位置有一个错误的定义,或者你可能在定义脚本您的索引而不是通过require.js“需要它们”
1st - 检查shell.js,在顶部你应该有一个define函数,它应该说/做这样的事情,并且应该像这样将它暴露给视图 -
define(['durandal/plugins/router'], function (router) {
var shell = {
router: router
};
return shell;
};
第二 - 检查并确保'durandal / plugins / router'指向解决方案资源管理器中的正确位置,在这种情况下,它是app&gt; durandal&gt;插件&gt;路由器。如果不是或没有路由器,您可以使用nuget添加它。
3 - 确保您没有在索引或shell html页面中加载脚本。使用require.js时,您需要将要加载的任何脚本移动到require语句中,以使所有内容正常运行。当您将其加载到其他地方时,通常会发生'不匹配的匿名定义()模块'错误 - http://requirejs.org/docs/errors.html#mismatch