Estou usando o onchange para salvar o valor do meu intervalo de entrada no firebase, mas tenho um erro que diz que minha função não está definida.
esta é minha função
saverange(){
this.Platform.ready().then(() => {
this.rootRef.child("users").child(this.UserID).child('range').set(this.range)
})
}
este é meu html
<ion-item>
<ion-row>
<ion-col>Rayon <span favorite><strong> {{range}} km</strong></span></ion-col>
<ion-col><input type="range" name="points" min="0" max="40" [(ngModel)]="range" onchange="saverange()"></ion-col>
</ion-row>
</ion-item>
o que é o equivalente a onchange em angular, se houver. obrigado
(change)
, Faltam 5Respostas:
Como
change
está na lista de eventos DOM padrão , podemos usá-lo:Em seu caso específico, como você está usando o NgModel, você poderia quebrar a ligação bidirecional assim:
Então
No entanto, com esta abordagem
saverange()
é chamada a cada pressionamento de tecla, então provavelmente é melhor usar(change)
.fonte
No Angular você pode definir
event listeners
como no exemplo abaixo:fonte
@Mark Rajcok ofereceu uma ótima solução para projetos de íons que incluem uma entrada do tipo faixa.
Em qualquer outro caso de projetos não iônicos, sugerirei o seguinte:
HTML:
Componente:
A ideia aqui:
Deixando o
(ngModelChange)
método fazer o trabalho do Setter:(ngModelChange)="range=saverange($event, points)
Habilitando o acesso direto ao elemento Dom nativo usando esta chamada:
eRef.value = eventStrToReplace;
fonte