AngularJS控制器注册

时间:2017-06-05 17:42:04

标签: javascript angularjs node.js

我继承了一个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>

1 个答案:

答案 0 :(得分:2)

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