Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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 角度内的控制器定义';s ng视图_Javascript_Angularjs - Fatal编程技术网

Javascript 角度内的控制器定义';s ng视图

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

我有一个使用ngRoute模块的Angular 1.3应用程序。我希望能够在与视图相同的文件中定义控制器,但由于某些原因,Angular无法识别它:

view.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>
<!-- ... -->
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函数中引用控制器,因此理论上这应该可以工作。。。