Asp.net mvc 用requirejs加载momentjs会导致应用程序挂起

Asp.net mvc 用requirejs加载momentjs会导致应用程序挂起,asp.net-mvc,requirejs,momentjs,durandal-2.0,Asp.net Mvc,Requirejs,Momentjs,Durandal 2.0,我试图在我的web应用程序中要求momentjs。我在服务器端使用ASP.NETMVC,在客户端使用Durandal requirejs.config({ urlArgs: "bust=" + (new Date()).getTime(), paths: { 'text': '../Scripts/text', 'durandal': '../Scripts/durandal', 'plugins': '../Scripts/durandal/plugins',

我试图在我的web应用程序中要求momentjs。我在服务器端使用ASP.NETMVC,在客户端使用Durandal

requirejs.config({
urlArgs: "bust=" + (new Date()).getTime(),
paths: {
    'text': '../Scripts/text',
    'durandal': '../Scripts/durandal',
    'plugins': '../Scripts/durandal/plugins',
    'transitions': '../Scripts/durandal/transitions',
    'moment': '../Scripts/moment'
},
noGlobal: true
})

这是我的define函数

define(['moment'], function(moment) {
    moment().format();
});
我直接在办公室外工作 我可以看到加载了.js脚本的那一刻,但一旦它通过define函数,应用程序就只是坐在那里。如果我取下define,一切正常

有人能帮我弄清楚我在这里做错了什么吗


我正在添加整个文件的一部分,可能会有所帮助。

我想我可能误解了require.js的一个概念。我将main.js文件更改为没有返回瞬间的define,而是添加了一个新模块,如下所示

define(['moment'], function() {
return {
    dates: {
        getSimpleDate: getSimpleDate,
        getDateTime: getDateTime
    }
};

function getSimpleDate (date) {
        return moment(date).format('DD-MMM-YYYY');;
};

function getDateTime(date) {
    return moment(date).format('DD-MMM-YYYY H:mm:ss a');
}
});

这似乎很顺利

我可以告诉你们,我们使用的时刻和你们在杜兰达尔的时候完全一样,当然,它工作得完美无缺。唯一不同的是,我们没有将noGlobal设置为true。您是否也在全局加载矩,即标记中的服务器端?检查您的index.chtml或index.html文件。@EricTaylor我将时间添加回我的包中,但仍然遇到同样的问题。当我这样做的时候,我看到的唯一区别是瞬间被加载了2次。我正在添加一个包含整个main.js文件的fiddle,可能会有所帮助。哦,对不起,我可能不太清楚:我不是有意让你将它添加回你的包中。我只是想确保您没有(通过捆绑)全局添加它。换句话说,如果您在require.js中使用依赖项注入,那么您不应该全局加载它。我想知道您是否试图过早地使用矩。你在app.start之前使用它。我要说的是,我们没有这样做。尝试创建另一个模块实例或单例,并在那里等待片刻。我保证在Durandal中使用moment或任何其他框架都是无痛的。“很抱歉您遇到了这个问题。@Eric Taylor谢谢您的帮助Eric!我现在可以用了。