码迷,mamicode.com
首页 > 其他好文 > 详细

backbone与require的共存问题解决

时间:2014-05-26 07:15:58      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:style   class   c   blog   java   ext   

如果向下面那样直接列出script标签可能会出现错误,
 
    <script type="text/javascript" src="/dep/jquery-1.11.1.min.js"></script>
    <script type="text/javascript" src="/dep/underscore-1.6.0.min.js"></script>
    <script type="text/javascript" src="/dep/backbone-1.1.2.js"></script>
    <script type="text/javascript" src="/dep/require-2.1.11.min.js"></script>

  

原因有两点:
1、backbone中有define等关键字
2、js的加载与执行顺序是无序的,所以有可能require先加载执行使backbone
 
解决方案:
第一步:配置require.config
 bubuko.com,布布扣
        require.config({
            baseUrl: ‘/src/‘,
            paths:{
                underscore: ‘/dep/underscore-1.6.0.min‘,
                jquery: ‘/dep/jquery-1.11.1.min‘,
                backbone: ‘/dep/backbone-1.1.2.min‘
            },
            shim: {
                ‘backbone‘: {
                    deps: [
                        ‘underscore‘,
                        ‘jquery‘
                    ]
                }
            }
        });
bubuko.com,布布扣
 
第二部:require入口模块 
 
        require([‘enter‘], function(main){
            main.enter();
        });

bubuko.com,布布扣

最后一步:在入口模块中依赖backbone
 
define([‘backbone‘], function (backbone) {

    // 异步加载某模块,可在此处做一些路由处理
    var enter = function(model){
        model = model||‘helloWorld‘;
        window.require([model], function(helloWorld){

            var $container = $(‘#main‘);
            helloWorld.init($container);
        });
    };

    return {
        enter: enter
    };
});

bubuko.com,布布扣

说明:
 
1、以后的业务模块中就不需要依赖backbone了,因为非模块加载已经全局化
2、在其他模块中使用时是Backbone,大写的B啊

 

backbone与require的共存问题解决,布布扣,bubuko.com

backbone与require的共存问题解决

标签:style   class   c   blog   java   ext   

原文地址:http://www.cnblogs.com/longze/p/3747795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!