如何做导航durandal.js?

时间:2013-08-02 06:18:01

标签: requirejs single-page-application durandal sammy.js

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

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

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

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

其中#details是我的durandal view page!

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

但是当我使用相同的网址刷新时,它工作正常,我能够看到视图!

我不知道为什么会出现这个错误

1 个答案:

答案 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