Javascript 角度内的控制器定义';s ng视图
我有一个使用ngRoute模块的Angular 1.3应用程序。我希望能够在与视图相同的文件中定义控制器,但由于某些原因,Angular无法识别它: view.html:Javascript 角度内的控制器定义';s ng视图,javascript,angularjs,Javascript,Angularjs,我有一个使用ngRoute模块的Angular 1.3应用程序。我希望能够在与视图相同的文件中定义控制器,但由于某些原因,Angular无法识别它: view.html: <script> angular.module("app").controller("fooController", function() {}); </script> <div ng-controller="fooController"></div> angular.mo
<script>
angular.module("app").controller("fooController", function() {});
</script>
<div ng-controller="fooController"></div>
angular.module("app", ["ngRoute"]);
// ...
<!-- ... -->
<body>
<div ng-view></div>
<script src="angular.js"></script>
<script src="angular-route.js"></script>
<script src="module.js"></script>
</body>
<!-- ... -->
index.html:
<script>
angular.module("app").controller("fooController", function() {});
</script>
<div ng-controller="fooController"></div>
angular.module("app", ["ngRoute"]);
// ...
<!-- ... -->
<body>
<div ng-view></div>
<script src="angular.js"></script>
<script src="angular-route.js"></script>
<script src="module.js"></script>
</body>
<!-- ... -->
上述安装程序引发错误:参数“fooController”不是函数,未定义
Tt在1.3之前工作过,当时控制器可以定义为全局函数此外,当$controllerProvider.allowGlobals()时,问题不会出现代码>在模块配置期间被调用,控制器被定义为全局函数。
我知道在HTML文件中定义控制器不是最好的主意,但在这种情况下,我有一个很好的理由
任何帮助都将不胜感激
编辑:
下面是显示问题的plunker:
单击此处的链接以更改路线并查看浏览器的控制台。此错误表示当您第一次尝试使用控制器时,尚未实例化控制器 我猜您正在ngRoute定义中引用控制器,并且ngRoute模块试图在显示视图之前覆盖控制器依赖项
如果您要更新您的问题以包括路由配置,这可能会更明显。工作(或非工作)的Plnkr.co演示会更好。我在Github上为此创建了一个问题:。结果表明,该方案还不受支持。不确定,但您可能需要在脚本之后有
ng视图
,因为在view.html
中,全局对象angular
尚未加载。它肯定已加载。否则会有一个错误,说它不是。当然,我已经添加了一个关于plunker的示例。我没有在module config函数中引用控制器,因此理论上这应该可以工作。。。