달성하고자하는 것은 상당히 간단하다고 생각합니다. 예를 들어 필수 입력란 (예 : 선택 입력)을 사용하여 폼을 만들어 보겠습니다. 어쨌든 정확히 동일한 상황입니다.버튼을 클릭하면 유효성 확인 메시지가 표시됩니다.
단추를 클릭 할 때만 ng-messages
을 표시하려고합니다. 버튼을 클릭하기 전에 양식 필드를 터치하면 잘 동작합니다. 그러나 양식 필드가 $untouched
인 경우이를 수행 할 수 없습니다.
양식 필드에 프로그래밍 방식으로 $touched
을 설정했지만 문제가 해결되지 않으면 해결할 방법이 있는지 궁금합니다. 참조
// Any way to avoid this line??
$scope.myForm.favoriteColor.$setTouched();
//
코드 :
HTML :
<md-input-container>
<label>Favorite Color</label>
<md-select name="favoriteColor" ng-model="favoriteColor" required>
<md-option value="red">Red</md-option>
<md-option value="blue">Blue</md-option>
</md-select>
<div class="errors" ng-messages="myForm.favoriteColor.$error" ng-show="validateWithHack">
<div ng-message="required">Required</div>
</div>
</md-input-container>
JS :
$scope.validateWithHack = function() {
if ($scope.myForm.$valid) {
alert('Form is valid.');
} else {
// Any way to avoid this line??
$scope.myForm.favoriteColor.$setTouched();
//
$scope.validateWithHack = true;
}
};
나는이 각 물질의 이전 버전으로 작업 된 것을 확신합니다. 이제는 최신 1.1.1을 사용하고 있습니다.
여기에 문제가 쉽게 재현 될 수있는 plunker입니다.
미리 감사드립니다.
@joyBlanks! 답장을 보내 주셔서 감사합니다.하지만 유스 케이스에 대한 유형 제출을 설정할 수 없습니다. 나는 또한 단지 novalidate 설정 시도했지만 둘 다 작동하지 않습니다. 어떤 생각? 이상적인 솔루션은 컨트롤러에서 프로그래밍 방식으로 메시지를 표시하는 것입니다 ... BTW, plunker에서 버튼 유형은 제출하지 않고 파일입니다. – troig
양식은 submit type = submit을 사용할 수 없기 때문에 제출 양식을 재정의하려면 ng-submit = "$ event.preventDefault()"아니오? – joyBlanks
다시 한번 감사드립니다. 당신을 올바르게 이해했는지 확실하지 않습니다. [이] (http://codepen.io/anon/pen/RGkwGp)는 무엇을 의미합니까? 그것은 내가 원래 코드가 이전 버전의 각진 재질에서 작동하는 이유를 이해하지 못하는 것 같지만 작동하지 않는 것 같습니다. 의견을 제안한 내용으로 귀하의 답변을 수정하십시오. 동의하겠습니다. 감사 – troig