2015-11-27 23 views
5

Ho creato una funzione che esegue alcuni controlli degli errori e verrà utilizzata in diversi campi di input. Il mio codice funzione è qui sotto:Come passare i parametri in angular-translate

errorChecks = (element, minlength) => { 
    if (element.$dirty) { 
     if (element.$error.required == true) { 
     this.errorMessage = "REQUIRED"; 
     return; 
     } else if (element.$viewValue.length < minlength) { 
      this.errorMessage = "MINLENGTH" // MINLENGTH error with parameters here 
      return; 
     } else { 
      this.errorMessage = null; 
      return; 
     } 
    } 
} 

Sto usando il traduttore angularjs per i miei messaggi di errore.

"MINLENGTH": "{{ element }} must be at least {{ value }} characters", 

volevo cambiare dinamicamente il mio messaggio di errore passando un parametro per le traduzioni in questo modo:

errorChecks(username, 5); 

Se entro 1 carattere al campo nome utente l'errore direbbe: username must be at least 5 characters.

È quello che sto cercando di fare anche possibile?

risposta

6

Sarà probabilmente meglio se si traduce all'interno del controller per questo, a meno che non si desideri passare element e minlength al modello.

In primo luogo è necessario iniettare $translate nel controller. Poi per generare il messaggio:

this.errorMessage = $translate('MINLENGTH', { element: element, value: minlength }); 

Questo metodo è anche delineato here.

Per fare questo nel modello (delineato here):

{{ MINLENGTH | translate : '{ element: element, value: minlength }' }} 
Problemi correlati