angularjs样式指南建议使用IIFEs来包装角度组件。然而,当我试图按照例子包裹我的时候,我遇到了他们被隐藏的问题。来自angularjs并且无法加载它们
void forksystem(char* command){
pid_t pid;
int status = 0;
pid = fork();
if(pid == 0){
system(command);
exit(1);
}
wait(&status);
}
<script type="text/javascript" src="my-module.js" %}"></script>
<script type="text/javascript" src="my-module-controller.js" %}"></script>
<div ng-app="my.app" ng-controller="MyAppController">
{{ somevar }}
</div>
(function() {
'use strict';
angular
.module('my.app', []);
});
这会导致错误:
(function() {
'use strict';
angular
.module('my.app')
.controller('MyAppController', MyAppController);
function MyAppController() {
....
}
});
如果我在模块声明中删除了IIFE,那么我还剩下以下内容:
Uncaught Error: [$injector:modulerr] Failed to instantiate module my.app due to:
Error: [$injector:nomod] Module 'my.app' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
它的工作原理是,下一个错误是:
'use strict';
angular
.module('my.app', []);
如果从控制器定义中删除IIEF,一切都按预期工作。
这显然是一个精简的例子,在我从Django服务器提供此页面的实际项目中,虽然我无法判断它是否相关。
答案 0 :(得分:2)
那些不是IIFE的。您没有调用该函数。以}()); or })();
(function() {
'use strict';
angular
.module('my.app')
.controller('MyAppController', MyAppController);
function MyAppController() {
....
}
})();