你可以使用Angular依赖注入而不是RequireJS吗?

Jos*_*sis 4 javascript angularjs

我开始使用angular,我怎么能将代码从一个应用程序分解成多个文件?我看了60分钟的介绍,他们提到我可以在没有requirejs或任何其他框架的情况下执行此操作.

让我们说我有这样的东西工作得很好:

var app = angular.module('app', []);

app.factory('ExampleFactory', function () {
   var factory = {};
   factory.something = function(){
   /*some code*/
   }
   return factory;
});


app.controller ('ExampleCtrl', function($scope, ExampleFactory){
   $scope.something = function(){
      ExampleFactory.something();
    };
});

app.config(function ($routeProvider) {
    $routeProvider
    .when('/',
    {
    controller: 'ExampleCtrl',
        templateUrl: 'views/ExampleView.html'
    })
    .otherwise({ redirectTo: '/' });
});
Run Code Online (Sandbox Code Playgroud)

如果我想将它放在单独的文件中怎么办?像这样

文件一:

   angular.module('factoryOne', [])
   .factory('ExampleFactory', function () {
       var factory = {};
       factory.something = function(){
       /*some code*/
       }
       return factory;
   });
Run Code Online (Sandbox Code Playgroud)

文件二:

  angular.module('controllerOne', ['factoryOne'])
  .controller ('ExampleCtrl', function($scope,ExampleFactory){
      $scope.something = function(){
      ExampleFactory.something();
      };
  });
Run Code Online (Sandbox Code Playgroud)

档案三:

angular.module('routes', ['controllerOne'])
.config(function ($routeProvider) {
     $routeProvider
     .when('/',
     {
    controller: 'ExampleCtrl',
        templateUrl: 'views/ExampleView.html'
     })
    .otherwise({ redirectTo: '/' });
 });
Run Code Online (Sandbox Code Playgroud)

档案四:

  var app = angular.module('app', ['routes']);
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这样做但它不起作用.我可以做这样的事情,只在主视图中有一个文件四的脚本标签吗?或者每个文件都必须有一个脚本标记?谢谢你的帮助.

Bri*_*wis 5

AngularJS目前没有脚本加载器作为框架的一部分.为了加载依赖项,您需要使用第三方加载器,例如RequireJS,script.js等.

根据文件(http://docs.angularjs.org/guide/module#asynchronousloading):

异步加载

模块是管理$ injector配置的一种方式,与将脚本加载到VM无关.现有的项目处理脚本加载,可以与Angular一起使用.由于模块在加载时不执行任何操作,因此可以按任何顺序将其加载到VM中,因此脚本加载器可以利用此属性并并行化加载过程.

...或者,正如@xanadont所解释的那样,您可以<script>为每个文件添加标签.