【发布时间】:2016-08-26 09:37:56
【问题描述】:
我对 Angular 还是很陌生。这是我正在开发的控制器...
svs.controller('registrationCtrl', function($scope, validatorService) {
$scope.$watch("registrationForm.email.value", function(newValue, oldValue) {
if (validatorService.validateEmail(newValue)) {
$scope.registrationForm.email.valid = true;
} else {
$scope.registrationForm.email.valid = false;
}
});
});
在关联视图中,有一个用于用户电子邮件的文本输入。它设置为让 Angular 使用 $scope.registrationForm.email.value 作为模型。似乎是这样,好像我从 $watch 函数中删除了所有内容,只做一个简单的控制台日志,每当我更改文本输入的值时它都会记录。
这里的想法是在$scope.registrationForm 有一个看起来与此类似的对象...
{
email: {
value: "someEmail@emailProvider.com",
valid: true
}
}
我正在尝试查看文本区域的值,使用服务方法验证电子邮件,并在有效时将registrationForm.email 的valid 属性设置为true。
很遗憾,我遇到了一个错误...
TypeError: Cannot read property 'email' of undefined
我没有在 JavaScript registrationForm.email.valid 中明确定义,也没有在我的视图的 HTML 中引用它。
我需要在设置之前创建此属性吗?这是怎么回事?
【问题讨论】:
标签: javascript angularjs validation object undefined