首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >karma/Jasmine: Error:[ng:areq]参数'loginController‘不是函数,未定义

karma/Jasmine: Error:[ng:areq]参数'loginController‘不是函数,未定义
EN

Stack Overflow用户
提问于 2015-11-23 11:23:06
回答 1查看 443关注 0票数 0

我的控制器文件:

代码语言:javascript
复制
define(['app', 'back123','loginService'], function (app) {
app.controller('loginController', function ($scope, $window, loginService, srvAuth) {$scope.emailValidate = function () {
        var pattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
        if (!pattern.test($scope.Email) ) {

           $scope.email_invalid = true;
           return false;
       }
       else {
           $scope.email_invalid = false;
           return true;
       }
    };
})

});

我的测试文件:

代码语言:javascript
复制
define(['app', 'jquery', 'angular-mock', 'coreService', 'setterService', 'loginService','logincontroller'], function (App, $) {

describe('app', function () {
    beforeEach(module('app'));

    describe('logincontroller Email Vaidate', function () {
        var scope;
        beforeEach(inject(function ($rootScope, $controller) {
            scope = $rootScope.$new();
            $controller("loginController", {
                $scope: scope
            });
        }));


        it('sets email false', function () {
            scope.email_invalid = false;
            scope.Email = 'true';
            scope.emailValidate();
            expect(scope.email_invalid).toEqual(false);
        });
    });

});

});

在我的浏览器“源代码”选项卡中,加载了包含logincontroller函数的loginCtrl文件,该文件仍然存在错误

代码语言:javascript
复制
Error: [ng:areq] Argument 'loginController' is not a function, got undefined

请建议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-27 12:16:35

由于我使用了angularAMD,所以我将代码更新为折叠:

代码语言:javascript
复制
angularAMD.inject(function ($rootScope, $controller) {
            scope = $rootScope.$new();
            $controller("loginController", {
                $scope: scope
            });
        });

此外,我在定义模块中将angularAMD作为依赖项包括在内:

代码语言:javascript
复制
define(['app', 'jquery', 'angularAMD', 'angular-mock', 'coreService', 'setterService', 'loginService', 'loginController'], function (App, $, angularAMD) {
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33869870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档