在angularjs中使用javascript模块?
我有一个旧的angularjs应用程序(使用1.2),我正在尝试将代码整理成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> 功能控制
<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)