Ben Angular2 kullanıyorum ve aşağıdaki gibi ben, girişlere maskeleri koymak için bir yönerge oluşturuldu:Yönergesi
import {Directive, Attribute} from 'angular2/core';
import {NgModel} from 'angular2/common';
@Directive({
selector: '[real]',
host: {
'(blur)': 'onInputChange()'
}
})
export class RealDirective {
modelValue: string;
viewValue: string;
constructor(public model: NgModel) {
}
onInputChange() {
this.modelValue = this.model.value.replace(/[^0-9\,]/g,'');
this.viewValue = RealDirective.format(this.modelValue);
this.model.viewToModelUpdate(this.modelValue);
this.model.valueAccessor.writeValue(this.viewValue)
}
static format(valor) {
if (valor == "") {
valor = "0";
}
var valorFloat: number = parseFloat(valor.replace(",", "."));
var valorString: string = valorFloat.toFixed(2).toString().replace(".", ",");
var valorSemCasasDecimais = valorString.substring(0, valorString.length - 3);
var valorArray: string[] = valorSemCasasDecimais.split("");
var casa: number = 0;
var valorStringComPontosInvertida: string = "";
for (var i = valorArray.length - 1; i > -1; i--) {
valorStringComPontosInvertida = valorStringComPontosInvertida + valorArray[i];
casa = casa + 1;
if (casa == 3 && i > 0) {
valorStringComPontosInvertida = valorStringComPontosInvertida + ".";
casa = 0;
}
}
var valorStringComPontosInvertidaArray: string[] = valorStringComPontosInvertida.split("");
var valorStringComPontosCorreta: string = "";
for (var i = valorStringComPontosInvertidaArray.length - 1; i > -1; i--) {
valorStringComPontosCorreta = valorStringComPontosCorreta + valorStringComPontosInvertidaArray[i];
}
var valorStringPronta: string = valorStringComPontosCorreta + valorString.substring(valorString.length - 3, valorString.length);
return valorStringPronta;
}
}
Bu bulanıklık olayı çalışır. Ancak, her bir girdi için formdaki bilgilerin yüklenmesi üzerine çalışmayı isterim, bunun nasıl yapılacağı konusunda herhangi bir fikri olan var mı?
Teşekkür ederim Michael, ama çok iyi anlamıyorum. Direktifin ngOnInitinde kullanıyorum? Girişin değerini nasıl elde ederim, çünkü bazı testler yapıyorum ve birçok kez çalıştırılıyor ve bu model de NgOnInit üzerinde null. –