RequireJS - "没有定义呼叫"几个角度相关的库

时间:2015-07-15 21:29:52

标签: javascript angularjs requirejs

我努力理解为什么我会看到几个"没有定义呼叫"在尝试加载我的角度应用程序时。我知道他们在那里是因为我使用enforeDefine:是的,但我的代码有什么问题?我需要做些什么来满足enforceDefine?

错误: enter image description here

main.js

/*global require, requirejs */

'use strict';

requirejs.config({
  enforceDefine: true,
  paths: {
    angular:                ['//cdn.jsdelivr.net/webjars/org.webjars/angularjs/1.4.0/angular.min','../lib/angularjs/angular.min'],
    'angular-messages':     ['//cdn.jsdelivr.net/webjars/org.webjars/angularjs/1.4.0/angular-messages.min','../lib/angularjs/angular-messages.min'],
    'angular-resource':     ['//cdn.jsdelivr.net/webjars/org.webjars/angularjs/1.4.0/angular-resource.min','../lib/angularjs/angular-resource.min'],
    'angular-ui-bootstrap': ['//cdn.jsdelivr.net/webjars/org.webjars/angular-ui-bootstrap/0.13.0/ui-bootstrap-tpls.min','../lib/angular-ui-bootstrap/ui-bootstrap-tpls.min'],
    uiRouter:               ['//cdn.jsdelivr.net/webjars/org.webjars/angular-ui-router/0.2.15/angular-ui-router.min','../lib/angular-ui-router/angular-ui-router.min'],
    bootstrap:              ['//cdn.jsdelivr.net/webjars/org.webjars/bootstrap/3.3.4/bootstrap.min','../lib/bootstrap/js/bootstrap.min'],
    jquery:                 ['//cdn.jsdelivr.net/webjars/org.webjars/jquery/2.1.4/jquery.min','../lib/jquery/jquery.min'],
    async:                  '../lib/requirejs-plugins/src/async'
  },
  shim: {
    angular: {
      exports : 'angular'
    },
    uiRouter: {
      deps: ['angular']
    },
    'angular-ui-bootstrap': {
      deps: ['angular']
    },
    'angular-resource': {
      deps: ['angular']
    },
    'angular-messages': {
      deps: ['angular']
    },
    bootstrap: {
      deps: ['jquery'],
      exports: 'jQuery.fn.popover'
    }
  },
  deps: ['app']
});

app.js

/*global require, requirejs */

'use strict';

define(['angular',
        './controllers',
        './directives',
        './filters',
        './services',
        'bootstrap',
        'jquery',
        'uiRouter',
        'angular-ui-bootstrap',
        'angular-messages',
        'angular-resource',
        'async',
        './gmaps'
        ],
  function(angular, controllers) {

    // Declare app level module which depends on filters, and services
    angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives', 'ui.router', 'ngMessages','ngResource','ui.bootstrap']).
      config(['$stateProvider','$urlRouterProvider','$httpProvider', function($stateProvider, $urlRouterProvider, $httpProvider) {

            $httpProvider.defaults.useXDomain = true;
            delete $httpProvider.defaults.headers.common['X-Requested-With'];

            $urlRouterProvider.otherwise('/home');

            $stateProvider

                // HOME STATES AND NESTED VIEWS ========================================
                .state('home', {
                    url: '/home',

                   .... several routes here that I hid

                });

        }]).controller('RouteCtrl', ['$scope','$state', function($scope, $state) {
            $scope.$state = $state;
        }]);

    angular.bootstrap(document, ['myApp']);

});

1 个答案:

答案 0 :(得分:0)

您可能需要将指定为require的脚本中的data-main更改为define。已经注意到issue on GitHub听起来与您遇到的类似。

图书馆作者建议,如果您使用enforceDefine标记,那么您的data-main模块也应使用define