2016-11-23 1 views
0

ng-currency 지시어가있는 입력 요소가 있습니다. 입력에 값을 추가하고 멀리 클릭 한 다음 IE11을 사용하여 입력을 다시 클릭하면 캐럿이 입력의 처음으로 이동합니다. 올바른 동작은 마우스 클릭이 발생한 위치의 위치에 캐럿을 배치하는 것입니다. 여기ng-currency가있는 입력 요소를 마우스로 클릭하면 입력 필드 (IE11)의 ​​시작 부분에 캐럿이 배치됩니다.

내가가 변경되기 전에 element.selectionStart 값을 잡기 위해 NG 초점 및 NG-흐림 지시어를 사용하고 NG 클릭에 복원하려고하는 솔루션으로 demo

입니다. 이것은 IE11에서는 작동하지만 Chrome에서는 그렇지 않습니다. element.selectionStart 값이 올바르지 않습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

답변

0

길고도 짧은 이야기, 여기에 내가 함께 결국 해결책은 다음과 같습니다

<input 
    ng-currency="$ctrl.getCurrencyDirectiveState()" 
    ng-mousedown="$ctrl.setCurrencyDirectiveState(false)" 
    ng-blur="$ctrl.setCurrencyDirectiveState(true)" 
    ...> 
</input> 

캐럿 위치가 유지되도록 아래로 마우스의 지시를 비활성화하고, 초점이 포맷을 보여 끊어지면 다시 가능 값.

저는 여기에 link의 문제가 있습니다.