【问题标题】:Argument is not aNaNunction, got undefined on a Controller参数不是 NaNunction,在控制器上未定义
【发布时间】:2016-11-07 00:54:19
【问题描述】:

所以我收到了这个错误,我一直在查看其他问题,但没有任何效果。

这里是我声明我的模块的地方:

(function () {
    'use strict';
    var app = angular.module('PaymentManagementApp', ['ngRoute', 'ngStorage', 'ngMessages', 'ngMaterial']);
    app.config(function ($routeProvider) {

        $routeProvider

        .when('/login', {
            templateUrl: 'app/components/login/login.html',
            controller: 'LoginController'
        })

})();

这是我收到错误“LoginController is not aNaNunction, got undefined”的控制器

(function () {
    'use strict';
    angular
        .module('PaymentManagementApp')
        .controller('LoginController', function ($scope, $location) {

            $scope.processLogin = processLogin;

            function processLogin() {
                return;
            };


        })
})();

还有html

<div id="login" class="image-content-layout" layout="row" layout-sm="column">

    <div class="background" style="background-image: url('assets/img/login.png');" flex></div>

    <div class="content" flex-md="70" flex-gt-md="40">
        <div class="wrapper">

            <h1 class="md-display-2 title">Iniciar sesión</h1>

            <form name="login">

                <md-input-container>
                    <label>Email</label>
                    <input required name="email" type="email" ng-model="email">

                    <div ng-messages="login.email.$error" ng-if="login.email.$touched">
                        <div ng-message="required">Debes ingresar tu email</div>
                        <div ng-message="email">El email no es válido</div>
                    </div>
                </md-input-container>

                <md-input-container>
                    <label>Contraseña</label>
                    <input required name="password" type="password" ng-model="password">

                    <div ng-messages="login.password.$error" ng-if="login.password.$touched">
                        <div ng-message="required">Debe ingresar una contraseña</div>
                    </div>
                </md-input-container>


                <p class="md-body-1 form-error">{{ formError }}</p>


                <div class="md-actions" layout="row">
                    <span flex></span>
                    <md-button href="#/signup" class="signup md-raised">Registarse</md-button>
                    <md-button type="submit" ng-click="processLogin()" class="md-primary md-raised login">Iniciar sesión</md-button>
                </div>
            </form>

            <div class="full-page-overlay" http-loader>
                <div layout="row" layout-sm="column" layout-align="space-around">
                    <md-progress-circular md-mode="indeterminate"></md-progress-circular>
                </div>
            </div>

        </div>
    </div>
</div>

我应该怎么做才能解决它?

【问题讨论】:

  • 您是否在页面加载时包含了“LoginController.js”?
  • @PitchiahNatarajan 谢谢!我觉得自己像个白痴

标签: angularjs controller angular-controller


【解决方案1】:

您定义了两次angular.module('PaymentManagementApp')

改变这个:

angular
        .module('PaymentManagementApp')
        .controller('LoginController', function ($scope, $location) {...}

到:

app.controller('LoginController', function ($scope, $location) {...}

【讨论】:

  • .module('PaymentManagementApp') 是一个getter,它没有定义一个模块
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-08
  • 2015-03-04
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多