在angularjs中使用javascript模块?

在angularjs中使用javascript模块?,javascript,angularjs,Javascript,Angularjs,我有一个旧的angularjs应用程序(使用1.2),我正在尝试将代码整理成javascript模块,但是我不知道如何将控制器设置为模块中的一个函数,即,我想从: <script> function Controller($scope){ // do stuff } </script> <div ng-app ng-controller="Controller"></div> 功能控制

我有一个旧的angularjs应用程序(使用1.2),我正在尝试将代码整理成javascript模块,但是我不知道如何将控制器设置为模块中的一个函数,即,我想从:

  <script>
    function Controller($scope){
      // do stuff
    }
  </script>
  <div ng-app ng-controller="Controller"></div>

功能控制器($scope){
//做事
}
有点像

  <script type="module">
    export function Controller($scope){
      // do stuff
    }
  </script>
  <div ng-app ng-controller="Controller"></div>

导出功能控制器($scope){
//做事
}

但是我不知道怎么做,我并不特别需要顶层函数在一个模块中,但我想从它的模块中调用函数,据我所知,这意味着它也必须是一个模块,有什么方法允许这样做吗?

这里的问题是,从JavaScript模块导出不会自动向全局
窗口
对象添加任何内容,但当您尝试将函数用作控制器时,AngularJS 1.2就是在这里查找函数的。如果您希望将控制器包装在模块中,并且仍然以AngularJS 1.2样式使用它们,则需要tp将每个控制器显式地附加到
窗口
,或者在每个模块中:

//controller.js
导出功能控制器($scope){
//做事
}
window.Controller=Controller
或在专用脚本中:

从“/Controller1.js”导入{Controller1}
从“./Controller2.js”导入{Controller2}
从“./Controller3.js”导入{Controller3}
// ...
对象。分配(窗口{
控制员1,
控制员2,
控制员3,
// ...
})
<>你可能想考虑的是,从神奇的地方找到我的控制器在窗口样式,而不是使用控制器注册风格:

angular.module('my-app',[])
.controller('Controller1',function(){
//做事
})
这应该像在传统脚本中一样在模块中工作,并且它消除了任何手动
窗口
黑客攻击的需要。如果需要,您仍然可以命名函数并将其导出,尽管此时可能不太需要:

导出函数控制器1(){
//做事
}
角度.module('my-app',[]).controller('Controller1',Controller1)

这里的问题是,从JavaScript模块导出不会自动向全局
窗口
对象添加任何内容,但当您尝试将函数用作控制器时,AngularJS 1.2就是在这里查找函数的。如果您希望将控制器包装在模块中,并且仍然以AngularJS 1.2样式使用它们,则需要tp将每个控制器显式地附加到
窗口
,或者在每个模块中:

//controller.js
导出功能控制器($scope){
//做事
}
window.Controller=Controller
或在专用脚本中:

从“/Controller1.js”导入{Controller1}
从“./Controller2.js”导入{Controller2}
从“./Controller3.js”导入{Controller3}
// ...
对象。分配(窗口{
控制员1,
控制员2,
控制员3,
// ...
})
<>你可能想考虑的是,从神奇的地方找到我的控制器在窗口样式,而不是使用控制器注册风格:

angular.module('my-app',[])
.controller('Controller1',function(){
//做事
})
这应该像在传统脚本中一样在模块中工作,并且它消除了任何手动
窗口
黑客攻击的需要。如果需要,您仍然可以命名函数并将其导出,尽管此时可能不太需要:

导出函数控制器1(){
//做事
}
角度.module('my-app',[]).controller('Controller1',Controller1)