Javascript AngularJS控制器注册

Javascript AngularJS控制器注册,javascript,angularjs,node.js,Javascript,Angularjs,Node.js,我继承了一个nodejs/angularJS项目,在html中显示$scope变量时出现错误。我不断地犯错误“名为'loginCtrl'的控制器未注册。我只想做一些基本的事情,显示一个isAdmin变量,它是一个布尔值,我无法找出我做错了什么。我在login.js中的http调用工作正常,调试时可以看到$scope.isAdmin变量确实按预期填充 login.js (function () { 'use strict'; angular .module('loginApp', ['ng

我继承了一个nodejs/angularJS项目,在html中显示$scope变量时出现错误。我不断地犯错误“名为'loginCtrl'的控制器未注册。我只想做一些基本的事情,显示一个isAdmin变量,它是一个布尔值,我无法找出我做错了什么。我在login.js中的http调用工作正常,调试时可以看到$scope.isAdmin变量确实按预期填充

login.js

(function () {
'use strict';
angular
    .module('loginApp', ['ngMaterial', 'ngSanitize'])
    .controller('loginCtrl', loginCtrl)
    .config(function ($mdThemingProvider) {
        $mdThemingProvider.theme('default')
        .primaryPalette('blue')
    });
function loginCtrl($scope, $http, $log, $mdDialog, $window) {
    $scope.error = '';
    $scope.isAdmin = false;
    $scope.submit = function () {
        $http({
            method: 'POST',
            url: '/login',
            headers: {'Content-Type': 'application/json'},
            data: {'username': $scope.username, 'password': $scope.userpassword},
        }).then(function successCallback(response, data) {
            if (response.data.successful) {
                $scope.isAdmin = response.data.isAdmin;
              ...
           ...
我的naviagtion.ejs是局部的 作为一个测试,我只想在行项目上看到true或false

<!-- views/partials/header.ejs -->
<div class="navbar navbar-inverse navbar-fixed-top" ng-controller="loginCtrl">

<div class="navbar-collapse collapse">
  <ul class="nav navbar-nav">
    <li><a href="/index">Home</a></li>
    <li><a href="/admin">Admin</a></li>
    <li><a href="/logout">Log out</a></li>
    <li><a href="">Test: {{isAdmin}} </a></li>
  </ul>

还有我的index.html 我想这就是问题所在。我在页面底部插入了login.js脚本,但ng app productName用于填充/partials/复选框的第二个div,效果很好

<body ng-app="productName">
<div class="container">
    <% include ./partials/navigation %>
</div>
<div>
    <% include ./partials/checkboxes %>
</div><!--bower:js-->
<script src="/lib/jquery/dist/jquery.js"></script>
<script src="/lib/bootstrap/dist/js/bootstrap.js"></script>
<script src="/lib/angular/angular.js"></script>
<script src="/lib/angular-animate/angular-animate.js"></script>
<script src="/lib/angular-aria/angular-aria.js"></script>
<script src="/lib/angular-messages/angular-messages.js"></script>
<script src="/lib/angular-sanitize/angular-sanitize.js"></script>

<!--endbower-->
<!--inject:js-->
<script src="/js/login.js"></script>
<!--endinject-->
</body>

</html>


您正在将“angular.module”中的应用程序名称定义为“loginApp”,而在body标记中,您的应用程序名称为“productName”,请先更正。

您正在将“angular.module”中的应用程序名称定义为“loginApp”,而在body标记中,您的应用程序名称为“productName”请先更正。

这就是我的问题所在……如果我更改了productName应用程序,则必须使用该应用程序,否则复选框部分不会呈现。然后尝试使用“productName”应用程序而不是“loginApp”创建控制器或者你可以为复选框和导航栏创建单独的模块,并分别为它们创建控制器。我试图尽可能地做一些小的改变,但意识到我做不到。最后,为了方便起见,我将所有内容都放在了productName应用程序下。一切正常。这就是我的问题所在……如果我更改了productName应用程序,则必须使用该应用程序才能显示部分复选框。然后尝试使用“productName”应用程序而不是“loginApp”创建控制器或者你可以为复选框和导航栏创建单独的模块,并分别为它们创建控制器。我试图尽可能地做一些小的改变,但意识到我做不到。最后,为了方便起见,我将所有内容都放在了productName应用程序下。一切都很好。