Angularjs format monétaire dans la zone de saisie avec ng-model: comment obtenir $formateurs de feu sur chaque entrée
J'ai cherché partout pour cela. Chaque débordement de pile qui a une réponse, il ne fait pas de travail. Même avec des exemples ou google groupe exemples de angulaire y compris la documentation.
Semble simple. Je veux une fonction appelée sur une entrée pour chaque touche enfoncée par l'utilisateur.
simple entrée avec un ng-model
<input class="form-control" ng-model="model.thisisnotfun" formatter type="text" required>
Selon tout ce que je lis. $formateurs devraient mettre à jour la valeur du modèle à la vue d'appeler toutes les fonctions dans le $formateurs tableau. Ils n'ont jamais appelée lorsque je tape dans la zone de saisie.
.directive('formatter', function ($filter, $parse) {
return {
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
ngModel.$formatters.push(
function (value) {
console.log('this only gets called on page load');
}
);
}
};
})
Je sais qu'il y a beaucoup de manières personnalisée pour ce faire, j'ai déjà fait. Je n'ai pas besoin d'un travail autour, je veux juste savoir comment utiliser $formateurs correctement à "format" de la vue de données.
très très simple jsfiddle http://jsfiddle.net/fh7sB/4/
Merci pour toute aide.
$formatter
dans AngularJS documentation. Pourriez-vous m'aider avec ça?Aussi un plunk aiderait
assurez-vous de mauvais post. Les documents sont pour la ngModelController docs-angularjs-org-dev.appspot.com/api/...
j'ai ajouté le violon, vous pouvez vérifier les journaux de la console. Ma question est pourquoi le $analyseurs fonction appelée lorsque l' $formateurs n'est pas sur chaque pression de touche.
OriginalL'auteur j_walker_dev | 2013-09-22
Vous devez vous connecter pour publier un commentaire.
La
$formatters
appelée lorsque la modèle est mis à jour pour le format de la valeur à être présentés à l'utilisateur. Le$parsers
faire l'inverse, c'est à dire traduire la valeur à partir d'une vue de chaîne à un modèle réel, par exemple un numéro.Dans la fourche de violon ici: http://jsfiddle.net/9tuCz/ appuyez sur le bouton; il modifie le modèle et les feux de la
$formatters
de nouveau.En Plus lors de mon test, le bouton n'feu de l' $formateur si l'entrée n'est pas déjà le même.
Vous n'avez répondu pourquoi $formateurs n'était pas appelé, ce qui est correct. Même si elle n'aide pas mon problème, il a répondu que mal de le marquer. Si quelqu'un a besoin d'une directive qu'ils puissent regarder ma réponse.
OriginalL'auteur Nikos Paraskevopoulos
Je ne pouvais pas obtenir les $formateurs fonctionne comme je le voulais. Je n'arrivais pas à trouver un seul exemple de ce que je cherchais partout alors je vais poster ma réponse au cas où quelqu'un en a besoin.
C'est une directive pour la mise en forme de la devise américaine dans les zones d'entrée avec ng-model
ce doit être la meilleure réponse
OriginalL'auteur j_walker_dev
Assurez-vous que vous êtes en train de retourner une valeur valide à partir de vos fonctions.
Ce qui est probablement ce qui se passe est depuis l'analyseur retourne la même valeur à chaque fois, le formateur suppose la mise en forme de la sortie n'aura pas changé de sorte qu'il ignore l'appel.
Je ne suis pas exactement sûr de ce que vous dites. Voici une mise à jour du violon, est-ce que tu veux dire, ou pouvez-vous résoudre ce problème au travail? jsfiddle.net/bDZf3/3
OriginalL'auteur Jussi Kosunen