2014-04-21 5 views
3

input[type=text]은 내 양식에 ng-required="true"입니다. 입력에 바인딩 된 모델을 업데이트하는 버튼 클릭 이벤트가 있습니다.AngularJS는 공백 만 허용합니다.

업데이트 된 값이 비어 있으면 양식이 유효하지 않게됩니다. 하지만 업데이트 된 값이 완전히 공백 인 경우 양식이 유효합니다.

공백을 삭제하고 다시 읽으면 양식이 다시 유효하지 않게됩니다.

이 jsfiddle을 보여줍니다 :이 문제에 대한 해결 방법은 http://jsfiddle.net/dayeh/

있습니까? 지금은 모든 백엔드 데이터를 다듬을 것입니다.

+0

피들에 공간을 추가하면 양식이 유효하지 않습니다. 클릭 한 후 언급 하시겠습니까? 또한,'$ scope.myData = '';에 공백이 있음을 의미합니까? – Fiver

+0

변수에 공백이 있으면 전체 점이됩니다. 이상한 행동을하고 있습니다. 수동으로 공백을 입력하면 ng-required가 오류로 처리합니다. 그러나 당신이 직접 whitepsace로 설정한다면, 그렇지 않습니다. –

답변

6

문제가 발생로 전환합니다.

기본적으로 ng-model은 입력 값을 다듬습니다. 이 값을 따옴표로 묶은 modified fiddle을 보면 사용자가 입력 한 공백이 빈 문자열로 표시됨을 알 수 있습니다.

그러나 모델을 빈 공간으로 만들면 트리밍이 적용되지 않으므로 모델이 기술적으로 유효합니다.

ng-model의 기본 트리밍을 ng-trim="false"으로 제거 할 수 있습니다. 그렇다면 더 기대되는 행동을 취할 것입니다.

0

버튼을 클릭하면 값이 재설정됩니다. 그러나 값은 으로 다시 설정됩니다. 빈 공백입니다. $scope.myData = '';으로 설정하면 유효합니다 (예상대로) false입니다. 수동으로 공백을 입력하면 유효 기간은 false로 유지됩니다.

그래서 나는 $scope.myData = ' ';이 문제라고 생각합니다. 방식 때문에 ng-model 작품의 scope.myData = '';

Updated fiddle.

+0

바이올린은 내가 발견 한 문제를 보여주고 있습니다. 나는 의도적으로 그것을 하나의 공간으로 설정하고 있었다. 어느 쪽이든, 나는 ng-needed가 오류로 간주되어야한다고 생각합니다. –

관련 문제