我在加载到主html中的部分模板中遇到上述错误。当我将控制器声明为全局它时(MyController1),当我直接在" app.controllers"中声明控制器时。它工作,但当我声明控制器(MyController)作为部分模板的一部分时,出现上述错误。有什么帮助吗?
代码
<div ng-controller='MyController1'>
<span ng-bind="mydesc"></span>
</div>
<script type="text/javascript">
function MyController1($scope) {
$scope.mydesc = "Direct Global Definition";
console.log('in Direct');
}
angular.module('app.controllers').controller('MyController',['$scope',function($scope) {
$scope.mydesc = "Defined as part of Controller Inline";
}]);
</script>
以上代码有效,但是当我更改ng-controller =&#34; MyController1&#34;到ng-controller =&#34; MyController&#34;,出现错误。
我不想使用全局功能,我无法将每个部分控制器添加到&#34; app.controllers&#34;。
答案 0 :(得分:0)
看起来,就像你使用angular 1.3版本一样。 在该版本中,根据发行说明禁用了作为控制器的全局功能,但您仍然可以使用它们。您需要做的就是配置控制器提供程序以允许将全局方法用作控制器。 这是完整的工作代码
<div ng-app="app.controllers" ng-controller="MyController1">
<span ng-bind="mydesc"></span>
</div>
虽然不建议使用全局方法。
function MyController1($scope) {
$scope.mydesc = "Direct Global Definition";
}
app = angular.module('app.controllers', []);
app.config(['$controllerProvider', function($controllerProvider) {
$controllerProvider.allowGlobals();
}]);
app.controller('MyController', ['$scope', function ($scope) {
$scope.mydesc = "Regular definition";
}]);