2017-02-20 1 views
0

Я пытаюсь вызывать только один раз, когда группа часов вызвана для запуска console.log и предупреждения только один раз. Потому что я пытаюсь предупредить только один раз каждый раз, если условие истинно, я действительно надеюсь, что вы, ребята, можете мне помочь!

$scope.$watch('email.data', function(val){ 
    if(re.test(val)){  
    $scope.invalid = true; 
    console.log('email true'); 
    }else{ 
    console.log('email false'); 
    } 
}); 

$scope.$watch('phone.data', function(val){ 
    if(PHONE_REGEXP.test(val)){ 
    console.log('phone true'); 
    $scope.invalid = true; 
    }else{ 
    $scope.invalid = true; 
    console.log('phone false'); 
    } 
}); 
+0

Рассмотрите возможность использования 'нг-change' вместо того,' $ watch' – sh0ber

+0

вы можете дать мне пример о том, как использовать нг-изменения? – user3711175

+0

https://docs.angularjs.org/api/ng/directive/ngChange – AlexD

ответ

0

$scope.$watch возвращает функцию. если вы это называете вы удалите ваш наблюдающий

var emailDataWatcher = $scope.$watch('email.data', function(val){ 
    if(re.test(val)){  
    $scope.invalid = true; 
    console.log('email true'); 
    }else{ 
    console.log('email false'); 
    } 

    emailDataWatcher(); 
}); 

var phoneDataWatcher = $scope.$watch('phone.data', function(val){ 
    if(PHONE_REGEXP.test(val)){ 
    console.log('phone true'); 
    $scope.invalid = true; 
    }else{ 
    $scope.invalid = true; 
    console.log('phone false'); 
    } 

    phoneDataWatcher(); 
}); 
+0

Привет, alex не работает после того, как я набираю каждый раз, когда кнопка предупреждения будет появляться каждый раз, когда я набираю слово – user3711175

+0

См. Обновленный код, я переехал отмена регистрации за пределами if. Если он все еще не работает, напишите, где находится этот код. Вы должны называть его только один раз, а не для каждого типа. – AlexD

+0

Erm alex код работает нормально, но когда я пытаюсь добавить другой символ на адрес электронной почты, он выдает ошибку, но кнопка все еще становится действительной и все еще видимой, но если я не добавил удалить объект наблюдения, мой код отлично работает, почему это происходит? – user3711175

Смежные вопросы