2016-11-23 55 views
0

我有一个带ng-currency指令的输入元素。如果我向输入添加一个值,请点击,然后单击使用IE11的输入,将插入符号移至输入的开头。正确的行为是将脱字符号放在鼠标点击值所在的位置。用ng-currency在输入元素上点击鼠标将插入符号放在输入字段(IE11)的开头

这里是一个demo

作为一个解决方案,我试图用NG对焦和NG-模糊指令赶上element.selectionStart值被改变之前,然后在NG-点击恢复。这适用于IE11,但不适用于Chrome,因为element.selectionStart值不正确。

有关如何解决此问题的任何想法?

回答

0

长话短说,这里是一个解决方案,我结束了:

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

禁用鼠标指令下来,让插入符的位置被保留,并再次启用时,焦点将丢失,显示格式化值。

这是我在ng-currency repo中打开的问题的link

相关问题