我遇到这个错误,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";
}
]);
希望这可以对您有所帮助,谢谢。