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

发布于 2022-09-03 14:38:06 字数 2289 浏览 19 评论 0

我用的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'
            });
    });
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画▽骨i 2022-09-10 14:38:06

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

逆夏时光 2022-09-10 14:38:06

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文