angularJS中的控制器链接

Posted

技术标签:

【中文标题】angularJS中的控制器链接【英文标题】:Controller chaining in angularJS 【发布时间】:2014-03-10 06:25:26 【问题描述】:
/**
 * Created with JetBrains WebStorm.
 * User: Faizan
 * Date: 3/7/14
 * Time: 6:09 PM
 * To change this template use File | Settings | File Templates.
 */
angular.module("myApp",[])
.controller("CtrlParent",function($scope)
      $scope.ParentFunc= function()
          alert("This is Parent");
         // $scope.$on("hello");
      
    )
.controller('CtrlBigChild',function($scope)
        $scope.BigChildFunc= function()
            alert("This is Big Child");
           // $scope.$on("hello");
        
    )
.controller('CtrlChildOne',function($scope)
        $scope.ChildOneFunc= function()
            alert("This is Child One");
         //   $scope.$on("hello");
        
    )
.controller('CtrlChildTwo',function($scope)
        $scope.CtrlChildTwoFunc= function()
            alert("This is Child Two");
          //  $scope.$on("hello");
        
)
.controller('CtrlChildOneChild',function ($scope)
        $scope.ChildOneChildFunc= function()
            alert("This is Child one's Child");
         //   $scope.$on("hello");
        
    )
.controller('CtrlChildTwoChild',function($scope)
        $scope.ChildTwoChildFunc= function()
            alert("This is Child Two's Child");
        //    $scope.$on("hello");

        
    )

1:加载资源文件失败:///C:/Users/Faizan/WebstormProjects/AngularJS%20emit%20broadcase%20controller/js/controller.js.js

2:未捕获的错误:[$injector:modulerr]http://errors.angularjs.org/1.2.10/$injector/modulerr?p0=myApp&p1=Error%3A%…rJS%2520emit%2520broadcase%2520controller%2Fjs%2Fangular.min.js%3A17%3A431 )

【问题讨论】:

使用服务器,http:// 【参考方案1】:

确保您在 ng-app 中引用了正确的模块。<body ng-app="myApp">

This demo 包含您的代码,不会产生任何错误。

您可以通过将 ng-app(在小提琴选项下)更改为其他内容来重现错误 2,例如:<body ng-app="banana">


并且,请确保在您的 javascript 文件(例如 controller.js)之前引用 angular。

【讨论】:

我已经检查过仍然面临 Uncaught ReferenceError: angular is not defined controller.js:9 Uncaught Error: [$injector:modulerr] errors.angularjs.org/1.2.10/$injector/…...rJS%2520emit%2520broadcase%2520controller%2Fjs%2Fangular。 min.js%3A17%3A431) 对 angular 的引用必须在你的 controller.js 文件之前。 太好了,我在答案中添加了这个建议。

以上是关于angularJS中的控制器链接的主要内容,如果未能解决你的问题,请参考以下文章

如何链接每个文件的angularjs组件

如何提供到 angularJs 路由页面的特定链接

AngularJS - 如何动态更改组件控制器?

AngularJS:视图控制器没有被调用

AngularJS - 无法在链接函数中动态更改指令模板

如何从angularjs中的另一个控制器调用函数