错误:[$ controller:ctrlreg]名称为“CounterController”的控制器未注册。

时间:2017-01-21 14:37:33

标签: angularjs

我在Chrome中按F12时看到此错误。 似乎没有问题。

我的HTML代码

<ul class="dropdown-menu" role="menu" ng-controller="CounterController">
   <li ng-repeat="item in messages"><a href="">{{item.name}}</a></li>
</ul>

这是我的js文件。知道为什么吗? 我使用的angualr的版本是1.6.1 角度控制器代码

angular
.module('myApp.counter_controller', [])
.controller('CounterController', ['$scope', '$filter', function($scope, $filter) {
    'use strict';
    $scope.messages = [{
        name : 'ENG',
        read : false
    }, {
        name : 'JPN',
        read : false
    }, {
        name : 'CHI',
        read : false
    }, ];   
$scope.setRead = function(item, $event) {
  $event.preventDefault();
  $event.stopPropagation();
  item.read = true;
};
$scope.setUnread = function(item, $event) {
  $event.preventDefault();
  $event.stopPropagation();
  item.read = false;
};
$scope.setReadAll = function($event) {
  $event.preventDefault();
  $event.stopPropagation();
  angular.forEach($scope.messages, function(item) {
    item.read = true;
  });
};
$scope.unseenCount = $filter('filter')($scope.messages, {
  read: false
}).length;
$scope.$watch('messages', function(messages) {
  $scope.unseenCount = $filter('filter')(messages, {
    read: false
  }).length;
}, true);
}]);

2 个答案:

答案 0 :(得分:2)

您可能已经完成了一些文件安排问题。

请参阅它正常工作的代码:code link

输出:Main Output

答案 1 :(得分:1)

您可能需要将它们包装在像这样的匿名函数中

(function(){                                                                     
    var myApp = angular.module('myAPP', ['ngRoute']);

   storehubs.controller('welcome',['$scope',function($scope){
       $scope.pageClass="welcome_page";
   }]);
})();

此外,您的HTML应包含ng-app =&#34; myApp&#34;你对angular.min.js和yourapp.js文件的链接需要在你的html的head标签中。

查看一些文档https://docs.angularjs.org/guide/controller