如何使用REQUIRE.JS加载js.aspx文件

时间:2014-03-19 09:43:33

标签: module requirejs

我正在使用Microsoft动态CRM,它有一个名为ClientGlobalContext.js.aspx的文件来提供Xrm对象,还有很多自定义脚本。其中一些文件正在使用ClientGlobalContext.js.aspx.

中的Xrm对象

现在我想使用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']
    }



 },
});

请建议我是否遗漏了一些

1 个答案:

答案 0 :(得分:0)

我找到了一个简单的解决方法。正如您在评论中所知,您不会将.js扩展名包含在需要尝试为您处理的内容中。对于CRM 2011而言,这并不是一个很好的解决方案,因为您尝试使用扩展名为.aspx的文件。 ClientGlobalContext.js.aspx很有用,但它也是动态生成的,所以没有静态版本可用。然而,解决方案是添加查询字符串。当需要看到这个时,它不会尝试为您添加.js扩展名,所以只需更改此行:

'ClientGlobalContext': 'ClientGlobalContext.js.aspx'

到此:

'ClientGlobalContext': 'ClientGlobalContext.js.aspx?foo=bar'

您并不十分关心查询字符串值是什么,它只是为了防止requirejs为了自己的利益而过于聪明。