AngularJS-控制器未注册 [英] AngularJS - Controller not registered
本文介绍了AngularJS-控制器未注册的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在开始AngularJS单元测试,但出现类似未注册名称为"SiteCtrl"的控制器的错误.
I am starting out on AngularJS Unit Testing and I am getting an error like Controller with name "SiteCtrl" is not registered.
我在这里做错了什么?
describe('#hasFormError', function () {
var $rootScope,form, templateHtml, ctrl,$scope,scope;
angular.module("TestApp");
beforeEach(function () {
angular.module("TestApp");
});
beforeEach(inject(function ($rootScope, $controller, $compile, $templateCache) {
$scope = $rootScope.$new();
ctrl = $controller;
ctrl('SiteCtrl', { $scope: scope });
var a1 = angular.element('<div class="page_container" ng-controller="SiteCtrl"><form name="shan"><div class="zip"><input ng-if="max_length == 5" type="text" name="zipcode" value="" ng-model="Sitezip.zipcode" ng-pattern="/^[0-9]*$/" ng-maxlength="max_length" required><input ng-if="max_length == 7" type="text" name="zipcode" value="" ng-model="store_zip.zipcode" ng-pattern="/^[a-zA-Z0-9]*$/" ng-maxlength="max_length" required></form></div>');
$compile(a1)($scope);
form = $scope.shan;
$scope.$apply()
}));
it("TestCase :controller defined \n", function () {
expect(ctrl).toBeTruthy();
});
it("TestZipCode", function () {
form.zipcode.$setViewValue("4535433123123");
expect(form.zipcode.$valid).toBeTruthy();
});
});
推荐答案
您必须在任何js文件中注入"SiteCtrl" 之后,您就可以使用它了.
You have to inject 'SiteCtrl' in any js file After that you can use it.
app.controller("SiteCtrl",SiteCtrl);
SiteCtrl.$inject = ['$scope','$state','$filter'];
这篇关于AngularJS-控制器未注册的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文