2017-03-21 7 views
0

을이 문자열과 트림 문자열에서 여러 공백을 삭제 내 JS 코드 작동하지 않습니다 이상한 행동이 있습니다. 내가 예를AngularJS와 트림() 함수는

" a a  a " 

에 대한 입력하면 결과가 잘 될 것입니다

"AAA"

하지만 그냥 트리밍해야 할 때 내가

"  aaa  " 

를 입력 할 때 문자열 결과가 변경되지 않습니다, 그것은 동일합니다.

+1

모델 변화에 모델 변경이 위험 (예를 들어, 무한 루프)가 될 수없는 이유는 무엇입니까? – sp00m

+0

브라우저 콘솔 'var v = "aaa"에서이 코드 스 니펫을 사용했습니다. v.replace (/ \ s +/g, '') .trim();'출력을 'aaa'로 찾았습니다. 그래서 괜찮습니까? 아니면 다른 것을 기대하고 있습니까? –

+0

@AbhisekMalakar 나는 또한 그것을 보았고 그것이 나를 혼란스럽게했다. 그러나 입력 값은 변함이 없습니다. – soja4

답변

1

각도는 자동으로 input[text]으로 조정됩니다. 수동으로 수행하려는 경우, 당신은 그것을 비활성화 할 수 있습니다

<input type="text" ng-model="userName" ng-trim="false" ng-change="userName=fixInput(userName)" /> 
             ^^^^^^^^^^^^^^^ 

https://docs.angularjs.org/api/ng/input/input%5Btext%5D에서 : 자동 입력을 손질하지 않습니다 거짓 AngularJS와로 설정하면

. 이 매개 변수는 입력 [type = password] 컨트롤에 대해 무시되며 입력을 트리밍하지 않습니다.

(기본값 : true)를

+0

나는 그걸로 해봤는데 나는 트림 기능을 제거하고 지금 내가 원하는 것을 얻고있다. 나는 처음부터 하나의 공간을 가지고있다. – soja4