我遇到这个错误,

Argument 'ctrl1' is not a function, got undefined

运行最新的angularjs v1.3.15。
我的语法在这里应该有什么不同吗?

这是HTML

<body ng-app="app">

  <div ng-controller="ctrl1">

      {{color}}

      {{root_color}}

  </div>

  <div ng-controller="ctrl2">

      {{color}}

      {{root_color}}

  </div>

  </body>


这是angularjs代码

   angular.module('app', []).controller('ctrl1', ['$scope', function ctrl1($scope){

    $scope.color = "yellow";
    $scope.root_color = "red";

   }]);



   angular.module('app', []).controller('ctrl2', ['$scope', function ctrl2($scope){

    $scope.color = "yellow";
    $scope.root_color = "red";

   }]);

最佳答案

您在应用程序中定义控制器ctrl1,然后再次使用ctrl2重新定义同一应用程序,该应用程序刷新了最初定义的控制器ctrl1

在角度方面,当ng-controller指令被编译时,它不会获得名称为ctrl1的控制器,因此第二次注册第二个控制器时,您应仅使用模块名称(如angular.module('app')而不是angular.module('app', [])



angular.module('app', []).controller('ctrl1', ['$scope',
    function ctrl1($scope) {
        $scope.color = "yellow";
        $scope.root_color = "red";
    }
]);

angular.module('app').controller('ctrl2', ['$scope',
    function ctrl2($scope) {
        $scope.color = "yellow";
        $scope.root_color = "red";
    }
]);


希望这可以对您有所帮助,谢谢。

10-07 14:51