Javascript 在angularjs中测试$scope变量
我有一段角度代码,如下所示:Javascript 在angularjs中测试$scope变量,javascript,angularjs,karma-runner,karma-mocha,Javascript,Angularjs,Karma Runner,Karma Mocha,我有一段角度代码,如下所示: $scope.someFunction = function(){ $scope.val = $scope.value2.length; } TypeError: Cannot read property 'length' of undefined at Scope.MainController.$scope.someFunction (absolute/home/guru/app/controllers/MainController.js?
$scope.someFunction = function(){
$scope.val = $scope.value2.length;
}
TypeError: Cannot read property 'length' of undefined
at Scope.MainController.$scope.someFunction (absolute/home/guru/app/controllers/MainController.js?131fd944e9e94b3a4ee4eb524e48e17a87dd4820:43:51)
我想测试上面的代码,为此我做了如下工作:
describe('test that', function() {
beforeEach(module('waldo'));
describe('MainController', function () {
var $scope, createController;
beforeEach(inject(function ($rootScope, $controller) {
$scope = $rootScope.$new();
createController = function (value2) {
return $controller('MainController', {
$scope: $scope,
value2: value2
});
};
}));
it('exists', function () {
var value2 = ["google", "yahoo"];
var controller = createController(value2);
expect(controller).not.toBeNull();
$scope.val = 10;
$scope.someFunction();
assert.equal($scope.val, value2.length);
});
});
});
我得到如下错误:
$scope.someFunction = function(){
$scope.val = $scope.value2.length;
}
TypeError: Cannot read property 'length' of undefined
at Scope.MainController.$scope.someFunction (absolute/home/guru/app/controllers/MainController.js?131fd944e9e94b3a4ee4eb524e48e17a87dd4820:43:51)
每个角度控制器都有一个关联的
$scope
对象
angular.module('formExample',[])
.controller('ExampleController',['$scope',function$scope){
$scope.master={};
$scope.update=函数(用户){
$scope.master=angular.copy(用户);
};
$scope.reset=函数(){
$scope.user=angular.copy($scope.master);
};
$scope.reset();
}]);代码>
名称:
电子邮件:
性别:男
女性
user={{user | json}}
master={{master | json}}
代码中的.length在哪里。询问长度法中的问题。请参考下面的答案