为什么我的应用程序'模块'未定义'在使用angular-route进行路由并实现RequireJS之后的控制器中?

时间:2016-08-07 15:54:06

标签: angularjs requirejs angular-routing

我决定尝试学习RequireJS,所以我试图在一个项目中实现它,我也决定使用Angular和Angular-Route进行路由。

我设法在我的app.js中设置了一个模块,但是在添加了我的第一条路线并为该路线设置了控制器后,应用程序'没有在控制器中定义。

似乎我不知何故需要设置应用程序'作为homeCtrl'的依赖。或者我需要制作应用程序'模块以某种方式可用。我只是不确定如何做到这一点。

以下是目前设置的内容:

index.html ...(* head blah blah)...

  <body ng-app="MyApp">

    <div ng-view>

    </div>

    <script data-main="./app/config" src="./app/require.js"></script>
    <script>
      require(['config'], function() {
        require(['app/app']);
      });
    </script>
  </body>
</html>

应用程序/ config.js ...

requirejs.config({
  baseUrl: './',
  paths: {
    jquery: 'lib/bower_components/jquery/dist/jquery.min',
    bootstrap: 'lib/bower_components/bootstrap/dist/js/bootstrap.min',
    angular: 'lib/bower_components/angular/angular.min',
    angular_route: 'lib/bower_components/angular-route/angular-route.min',
    home: 'app/controllers/homeCtrl'
  }
});

应用程序/ app.js ...

"use strict";

define(['jquery', 'angular', 'angular_route', 'home'], function ($, angular, angular_route, home) {

  let app = angular.module('MyApp', ['ngRoute']);

  app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
      when('/home', {
        templateUrl: 'partials/home.html',
        controller: 'homeCtrl'
      }).
      otherwise({
        redirectTo: '/home'
    });
  }]);

// End RequireJS 'define' 
});

应用程序/控制器/ homeCtrl.js ...

"use strict";

define(['jquery', 'angular'], function ($, angular) {

  app.controller('homeCtrl', [
    '$scope',

    function ($scope) {
      $('body').html(`<div>Hey it worked!</div>`);

    }
  ]);
// End 'define'
});

控制台错误的屏幕截图:

enter image description here

显示已加载文件的控制台网络部分:

同样,我是使用RequireJS的新手,所以我确定我在某个地方犯了一个简单的错误。

感谢您提供任何帮助/解决方案!

1 个答案:

答案 0 :(得分:0)

您需要以下垫片,因为Angular不会调用String.raw

define
相关问题