Asp.net mvc 用requirejs加载momentjs会导致应用程序挂起
我试图在我的web应用程序中要求momentjs。我在服务器端使用ASP.NETMVC,在客户端使用DurandalAsp.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',
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!我现在可以用了。