2016-11-23 8 views
0

У меня есть элемент ввода с ng-валютной директивой. Если я добавлю значение на вход, нажмите прочь, а затем нажмите обратно на вход, используя IE11, каретка будет перенесена в начало ввода. Правильное поведение будет заключаться в том, чтобы поместить курсор в положение в том значении, в котором произошел щелчок мыши.Мышь на элементе ввода с ng-валютой помещает каретку в начале поля ввода (IE11)

Вот demo

В качестве решения я попытался использовать нг-фокус и нг-смазанности директивы поймать значение element.selectionStart, прежде чем она изменяется, а затем восстановить его на нг щелчку. Это работает для IE11, но не в Chrome, так как значение element.selectionStart неверно.

Любые идеи о том, как обойти эту проблему?

ответ

0

Короче говоря, вот это решение я закончил с:

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

Отключение директивы о мыши вниз так, что сохраняется расположение каретка и позволяет ему снова, когда фокус теряется, чтобы показать форматированный стоимость.

Вот link к вопросу, который я открыл в регбонге ng-валюты.