Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当将angularjs控制器拉出到不同的文件中时,如果我的模块没有';你不能先装吗?_Javascript_Angularjs_Latency_Script Tag_Angularjs Module - Fatal编程技术网

Javascript 当将angularjs控制器拉出到不同的文件中时,如果我的模块没有';你不能先装吗?

Javascript 当将angularjs控制器拉出到不同的文件中时,如果我的模块没有';你不能先装吗?,javascript,angularjs,latency,script-tag,angularjs-module,Javascript,Angularjs,Latency,Script Tag,Angularjs Module,当我的模块未加载时,如何才能正确加载 假设我有几十个控制器,我想把每个控制器分成它自己的文件。对于本例,假设我有一个控制器位于一个文件中:controller.js angular.module('pubmodule').controller( 'CreatePostController', ['$stateParams', '$scope','$http' ,function($stateParams, $scope, $http) { }]); 我有一个模块可以从中加载:b

当我的模块未加载时,如何才能正确加载

假设我有几十个控制器,我想把每个控制器分成它自己的文件。对于本例,假设我有一个控制器位于一个文件中:controller.js

angular.module('pubmodule').controller( 'CreatePostController', ['$stateParams', '$scope','$http' ,function($stateParams, $scope, $http) {
        }]);
我有一个模块可以从中加载:base.js

angular.module( 'pubmodule', ['ngSanitize', 'ionic'] )
.run( function ( $rootScope, $state, $stateParams, PostTimelineService) {} );
我从html中加载以下每个文件:

<script type="text/javascript" src="controller.js"></script>
<script type="text/javascript" src="base.js"></script>

<>我紧跟着,但是这个问题没有考虑加载顺序,这是我感兴趣的话题。如何将控制器分成不同的文件并考虑模块加载的顺序?只需更改html加载顺序即可解决此错误,但我担心在考虑延迟时无法控制此问题。对controller.js的请求可能会首先返回。

我的示例是base.js中controller.js之后出现的module.run()

另请注意,如果base.js确实是base,那么它应该位于controller.js的顶部

尽管如此,请尝试在第一个js中添加您的.run。但也要确保在此之前,它的所有依赖项都是可用的。您的PostTineLineService

按照运行顺序检查AngularJS文档及其依赖项


延迟与加载顺序无关。浏览器仍将加载html中声明的文件。因此,只要先引用base.js文件,就可以了。浏览器将按代码出现的顺序执行代码。所以,如果控制器是在base之后声明的,但首先关闭,则在base完成之前不会对其进行计算。

延迟与加载顺序无关。浏览器仍将加载html中声明的文件。因此,只要先引用base.js文件,就可以了。浏览器将按代码出现的顺序执行代码。所以,如果控制器是在base之后声明的,但首先关闭,则在base完成之前不会对其进行计算。当使用script标记(不带async)时,它将按html中的显示顺序加载。延迟不会导致脚本失去同步。好问题。我自己正在为一个项目处理requireJS,如何排序和组合Javascript文件变得很棘手。另一方面,我认为我们的编程模型不应该依赖于这些语义,使用Grunt/Yeoman工作流结合所有应用程序角度代码是最好的选择。@HattanShobokshi如果您回答上述问题,我将接受它。我忘了这个。谢谢,我把它作为答案贴了出来。
Error: [ng:areq] Argument 'CreatePostController' is not a function, got undefined