关于requir.js异步加载的angularjs文件的顺序问题

新手上路,请多包涵

我用的angular.js的版本是1.4,我想用require.js把相关的文件导入,但是在导入依赖angular.js的其他模块,如angular-animate.min.js的时候,有时会发生angular-animate.min.js比angular.js加载快,导致浏览器报错
图片描述
但是我在config.js文件中设置了依赖,但是没有生效,不知道原因为何,希望各位大神为小弟解答一下
我的config.js代码如下

require.config({
    //baseUrl指的是根路径
    baseUrl: 'temp/lib/js',
    shim:{
        'angular-1.4.min': {
                    exports: 'angular'
        },
        'angular-ui-router': {
                    deps: ['angular'],
                    exports: 'uiRouter'
                },
        'angular-animate.min': {
                    deps: ['angular'],
                    exports: 'uiBootstrap'
                },
        'angular-sanitize.min': {
                    deps: ['angular'],
                    exports: 'ngAnimate'
                },
        'ui-bootstrap-tpls-2.1.3': {
                    deps: ['angular','ngAnimate','ngSanitize'],
                    exports: 'ngSanitize'
                }
    },
    paths:{
        jquery:'jquery-2.1.4.min',
        angular: 'angular-1.4.min',
        uiRouter: 'angular-ui-router',
        uiBootstrap: 'ui-bootstrap-tpls-2.1.3',
        ngAnimate: 'angular-animate.min',
        ngSanitize: 'angular-sanitize.min',
    },
    urlArgs: "bust=" + (new Date()).getTime()    //防止读取缓存,调试用
});



require(['angular','uiRouter','ngSanitize','ngAnimate','uiBootstrap'],function(){
    var myApp = angular.module('myApp',["ui.router",'ngAnimate','ngSanitize','ui.bootstrap']);

    myApp.controller('FirstCtrl', ['$scope', function ($scope) {
        $scope.name = 'JC';
    }]);

    myApp.config(function($stateProvider,$urlRouterProvider) {
        $urlRouterProvider.otherwise("/route1");
        $stateProvider
            .state('route1',{
                url: '/route1',
                templateUrl: 'temp/video.php',
                controller: function($scope){

                }
            })
            .state('route2',{
                url: '/route2',
                templateUrl: 'temp/form.php'
            })
            .state('route2.setting',{
                url: '/setting',
                templateUrl: 'temp/setting.php'
            });
    });
});
阅读 3.6k
2 个回答

可以尝试下将deps改为deps:['angular-1.4.min']

新手上路,请多包涵

把angular的启动方式设为手动就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题