【问题标题】:AngularJS error with nested controllers嵌套控制器的AngularJS错误
【发布时间】:2015-06-07 12:23:47
【问题描述】:

我的应用中有不同的控制器。

player.php:

<html ng-app="decibels-interactive" lang="en">
<body ng-controller="InteractiveController as interactCtrl">

player.php 有其各自的 player.js,其 .controller 运行正常。

现在,我在 menu.php 中有菜单栏,我在 player.php 文档中使用该菜单栏,导入方式为:

<html ng-app="decibels-interactive" lang="en">
<body ng-controller="InteractiveController as interactCtrl">

<?php include('includes/menu.php'); ?>
//here some html code
</body>
</html>

现在,我正在尝试创建一个 menu.js,但没有成功。我得到下一个错误:

错误:[ng:areq] http://errors.angularjs.org/1.2.25/ng/areq?p0=menu&p1=not%20a%20function%2C%20got%20undefined...

menu.php

<div class="navbar-fixed"  ng-controller="menu2">
  //some html code
</div>

menu.js:

app.controller('menu2', function($scope) {

 $scope.content = '';
});

我做错了什么?

谢谢!

【问题讨论】:

  • 错误说没有定义 menu 但在你的样本中只有 InteractiveControllermenu2

标签: javascript angularjs


【解决方案1】:

HTML 中的控制器名称与 JS 不匹配。 在 html InteractiveController 中,您将控制器命名为 menu2

这样可以解决问题。

app.controller('InteractiveController', function($scope) {
    $scope.content = '';
});

【讨论】:

  • 好的,谢谢。我刚刚尝试过: MENU.PHP-->
  • @Jordi45454,您可以在单独的模块中定义菜单并将其用作您想要的依赖项
  • 那么,我应该在哪里将菜单定义为单独的模块?对不起!我是 AngularJS 的新手,呵呵。
【解决方案2】:

您是否在 html 页面中包含了您的菜单控制器。它的控制器名称不匹配,并且它不包含在该页面中

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签