我收到此错误,
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";
}]);
答案 0 :(得分:2)
你用第二个控制器覆盖了第一个控制器。使用
var app=angular.module('app', []);
//1st controller
app.controller('ctrl1', function ctrl1($scope){
$scope.color = "yellow";
$scope.root_color = "red";
});
//2nd controller
app.controller('ctrl2', function ctrl2($scope){
$scope.color = "yellow";
$scope.root_color = "red";
});
答案 1 :(得分:1)
您正在应用中定义控制器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";
}
]);
希望这可以帮助你,谢谢。