控制器不是一个未定义的函数,http.post请求

时间:2014-11-05 13:52:28

标签: angularjs angularjs-controller

我遇到了控制器实例的问题。

我有一个使用此模块的简单导航树:http://nickperkinslondon.github.io/angular-bootstrap-nav-tree/test/bs3_ng120_test_page.html

我在任何叶子上添加了一个双击功能,以及一个编译的指令,并使用此模块打开一个窗口:http://codepen.io/m-e-conroy/pen/cFKkG

该窗口包含几个选项卡,其中一个选项卡必须包含另一个导航树,就像第一个导航树一样,但具有不同的数据。

我也在使用http://www.simplygoodcode.com/2014/04/angularjs-getting-around-ngapp-limitations-with-ngmodule/,因此我可以在同一页面上拥有多个应用。

问题是,必须加载的第二个导航树不起作用。我在这种方式发送的html中声明它(moduleAbn是包含在开始时加载的第一个.js中的变量,引用模块App1):

<script> moduleAbn.controller('AbnTestController2',['\$scope','\$http','\$timeout','\$compile',function(\$scope,\$http,\$timeout,\$compile){
...}]);</script>

<div ng-module='App1'> <div ng-controller='Controller2'>

执行此操作,控制台显示着名的 Controller2不是函数,未定义

奇怪的是,如果我用第一个导航树控制器的名称声明它

<div ng-module='App1'> <div ng-controller='Controller1'>

导航树出现,其数据与第一个相同,但似乎独立于另一个。

我真的不知道如何处理来自第一棵树的不同数据...

如果我不清楚,英语不是我的母语,所以如果你有任何问题我可以更具体;)

干杯!

1 个答案:

答案 0 :(得分:0)

您应该在定义时将AbnTestController2重命名为Controller2,或将ng-controller=中的名称从Controller2更改为AbnTestController2

您需要检查的第二件事是App1将模块AbnTest作为依赖项:

var App1 = angular.module('App1', ['AbnTest'])