zoukankan      html  css  js  c++  java
  • requirejs(shim)处理加载非AMD规范的js库

      使用requirejs加载模块,模块的定义得遵守AMD规范,也即定义模块的时候使用如下函数定义模块:

    1 define(function(){
    2     var private = function(){
    3           console.log('私有方法...');            
    4     };
    5     return {
    6         public:function(){private();}         
    7     };
    8 });

      即使用define包括模块代码,如果想在requirejs中嵌入自己以前的某些代码,但是这些代码没有遵守AMD规范,该怎么办呢?骚年不用担心,require的config中的shim能帮你解决痛苦!例如本人的文件目录结构如下:

    我想要在quikTip.js文件中使用framewokr.js提供的对象,但是framework.js是不遵守AMD规范的,在quikTip.js文件中require  framework模块之前必须先处理下framework.js使其符合AMD规范,代码如下:

     1 require.config({
     2         baseUrl:'js/utily',//指定js文件的基路径
     3         shim:{
     4             'framework':{//这个键名为要载入的目标文件的文件名,不能随便命名否则加载framework.js文件后是拿不到改文件对外提供的接口的。因为这个坑了哥一下午!!!
     5                 exports:'PXJSFrame'//exports的值为framework.js提供的 对外接口的名称
     6             }
     7         }
     8     });
     9 require(['framework'],function(frame){
    10     var PXJSFrame = frame;
    11      console.log(frame);//此处就会打印framework.js中对外提供的接口对象啦哈啊哈
    12 }
  • 相关阅读:
    设计模式学习--Singleton
    Add Binary
    简洁的ios小界面
    第一节、介绍
    魅族MX5和努比亚布拉格手机參数对照
    python 深浅拷贝 进阶
    为什么要重写equals()方法与hashCode()方法
    在Myeclipse buildpath 加server lib
    push本地代码到github出错
    mysql事务,select for update,及数据的一致性处理
  • 原文地址:https://www.cnblogs.com/QingChengFE/p/4512508.html
Copyright © 2011-2022 走看看