我正在使用Microsoft动态CRM,它有一个名为ClientGlobalContext.js.aspx
的文件来提供Xrm对象,还有很多自定义脚本。其中一些文件正在使用ClientGlobalContext.js.aspx.
现在我想使用require.js管理我的所有Javascript文件,但是如何使用require.js加载ClientGlobalContext.js.aspx?
以下是我正在尝试的内容
requirejs.config({
//By default load any module IDs from js
baseUrl: '',
//here we set our js folder
//config is relative to the baseUrl, and
//never includes a ".js" extension since
//the paths config could be for a directory..
paths: {
'jquery':'//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min',//set jQuery path you can also include your folder js
'jqueryui':'//ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min',// set jQuery ui path you can also include your folder js
'SDK.JQuery':"sample_/Scripts/SDK.JQuery",
'json2':"sample_/Scripts/json2",
'new_connexx':"new_connexx",
// 'new_common':"new_common",
'new_moment':"new_moment.min",
'new_controls':"new_controls",
'ClientGlobalContext': 'ClientGlobalContext.js.aspx'
},
shim: {
'new_controls': {
deps: ['new_moment','new_connexx'],// here we are defining that it depends on jQuery
},
'new_connexx':{
deps:['jqueryui']
},
'jqueryui':{
deps:['jquery','json2','SDK.JQuery']
},
'SDK.JQuery':{
deps:['ClientGlobalContext']
},
'new_moment':{
deps:['jqueryui']
},
'new_common':{
deps:['jqueryui']
},
'new_letter_wizard':{
deps:['jqueryui']
}
},
});
请建议我是否遗漏了一些
答案 0 :(得分:0)
我找到了一个简单的解决方法。正如您在评论中所知,您不会将.js扩展名包含在需要尝试为您处理的内容中。对于CRM 2011而言,这并不是一个很好的解决方案,因为您尝试使用扩展名为.aspx的文件。 ClientGlobalContext.js.aspx很有用,但它也是动态生成的,所以没有静态版本可用。然而,解决方案是添加查询字符串。当需要看到这个时,它不会尝试为您添加.js扩展名,所以只需更改此行:
'ClientGlobalContext': 'ClientGlobalContext.js.aspx'
到此:
'ClientGlobalContext': 'ClientGlobalContext.js.aspx?foo=bar'
您并不十分关心查询字符串值是什么,它只是为了防止requirejs为了自己的利益而过于聪明。