0

我正在尝试将 durandal.js 用于单页架构,

我已经有应用程序,我在 div = 单页架构的旧方法中加载所有页面,

我想要做的是当我点击页面时我需要打开 hotspa 页面,

现在我写这样的东西。www.xyz.com#/details,

其中# details 是我的 durandal 视图页面!

当我放<a>herf ....#/details 时,我得到了这样的错误:http: //postimg.org/image/hoeu1wiz5/

但是当我用相同的 url 刷新时,它工作正常,我可以看到视图!

我不知道为什么我得到这个错误

4

1 回答 1

0

如果你使用的是 Durandal 2.0 版之前的任何东西,你会得到这个,因为在你的 Shell.js 中你没有定义路由器,或者你对路由器模块的位置有一个错误的定义,或者你可能在你的索引中定义脚本通过 require.js “要求他们”

1st - 检查 shell.js,在顶部你应该有一个定义函数,它应该说/做这样的事情,并且应该像这样将它暴露给视图 -

define(['durandal/plugins/router'], function (router) {

    var shell = {
        router: router
    };

    return shell;
};

第二 - 检查并确保“durandal/plugins/router”指向解决方案资源管理器中的正确位置,在这种情况下,它是应用程序 > durandal > 插件 > 路由器。如果不是或没有路由器,您可以使用 nuget 添加它。

第三 - 确保您没有在索引或 shell html 页面中加载脚本。使用 require.js 时,您需要将正在加载的任何脚本移动到 require 语句中,以便一切正常运行。当您在其他地方加载它们时,通常会发生“不匹配的匿名定义()模块”错误 - http://requirejs.org/docs/errors.html#mismatch

于 2013-08-02T11:36:23.700 回答