gpt4 book ai didi

javascript - 具有此名称的 Controller 未注册——错误 : $controller:ctrlreg

转载 作者:行者123 更新时间:2023-11-30 13:48:25 25 4
gpt4 key购买 nike

属性绑定(bind) | AngularJS

我们试图在 AngularJS 指令中使用属性绑定(bind),但问题引发了错误

The controller with the name counterController is not registered.

我们想将 variable:firstcountcounterController 传递给 orderControllervariable:firstcount 需要在单击按钮时递增/递减。

有人可以帮助我们解决错误吗?

应用程序.js

(function(){
'use strict';

angular
.module('mainApp', []);

}());

index.html

<!DOCTYPE html>
<html ng-app="mainApp">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1">

<script src="angular.min.js"></script>

</head>
<body>

<div ng-controller='counterController as counter'>
<counter count="counter.firstcount"></counter>
</div>

<script src="app.js"></script>
<script src="counterController.js"></script>
<script src="orderController.js"></script>
<script src="counter.directive.js"></script>

</body>
</html>

orderController.js

(function () {
'use strict';
angular.module('mainApp', [])
.controller('orderController', orderController);

orderController.$inject = ['$scope'];
function orderController($scope) {
this.count=$scope.count;
console.log("Inside OrderController");

this.increment = function () {
this.count++;
}

this.decrement = function () {
this.count--;
}

};

}());

counterController.js

(function () {
'use strict';
angular.module('mainApp', [])
.controller('counterController', counterController);

counterController.$inject = ['$scope'];
function counterController($scope) {
var counter = this;
counter.firstcount = 10;
console.log("Inside Counter Controller");

counter.increment=function(){
counter.count++;
}

counter.decrement=function(){
counter.count--;
}
};

}());

counter.directive.js

(function () {
'use strict';

function counter() {
return {
restrict: 'E',
scope: {
count: '='
},
controller: 'orderController as order',
template: `
Counter: <input type="text" ng-model="order.count">
<button type="button" ng-click="order.increment()">Increment</button>
<button type="button" ng-click="order.decrement()">Decrement</button>
`
};
}

angular.module('mainApp')
.directive('counter', counter);

}());

最佳答案

您继续定义应用程序模块,而不是每次都这样做:

angular.module('mainApp', [])

改为这样做:

angular.module('mainApp')

您实际上在 counter.directive.js 中遵循了该模式。你应该只有:

angular.module('mainApp', [])

进入您的应用后,很可能进入 app.js 文件。

关于javascript - 具有此名称的 Controller 未注册——错误 : $controller:ctrlreg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58823692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com