Свойство ng2-currency-mask ‹ввод только для чтения› не работает

У меня есть вход, где пользователь собирается вводить денежные значения, поэтому я использую ng2-currency-mask для облегчения. Однако мне также нужно, чтобы этот ввод был доступен только для чтения. Добавление атрибута только для чтения не решило мою проблему, потому что, когда вы нажимаете на ввод и вводите, значение изменяется. Вот фрагмент кода:

<div class="ui-g-12 ui-md-6 ui-fluid">
    <label for="inputValor" id="labelValor">Valor unitário</label>
    <input id="inputValor" name="inputValor" type="text" currencyMask pInputText required ng-focus="false" [options]="{allowNegative: false, decimal: ',', prefix: 'R$ ', thousands: '.'}" [readonly]="true" [(ngModel)]="alteracoes.produto.valor">
</div>

У кого какие идеи по решению этой проблемы?


person kin.lhp    schedule 21.12.2017    source источник


Ответы (1)


Если вы можете контролировать значение только для чтения, попробуйте что-то вроде этого.

Ваш входной тег

<input id="inputValor" name="inputValor" type="text" currencyMask pInputText required ng-focus="false" [options]="{allowNegative: false, decimal: ',', prefix: 'R$ ', thousands: '.'}" [readonly]="readOnly" (keydown)="onKeyDown($event)" [(ngModel)]="alteracoes.produto.valor">

And in your ts:

public readOnly: boolean; 

onKeyDown(event: any): void {
 if (this.readOnly) {
  event.preventDefault();
 }
}
person Camilo Gutierrez    schedule 02.03.2018