Maison > Questions et réponses > le corps du texte
input
有个ng-model
绑定,手动输入能改变这个值,我用jquery
改变了一个input
的值$('#dd').val('str');
然后scope
的model
不变
求救
漂亮男人2017-05-15 16:57:24
Si vous utilisez angular way
pour modifier et mettre à jour la valeur du DOM ou des variables, aucune opération supplémentaire n'est requise.
Mais si vous vous éloignez d'Angular et utilisez du code comme jquery qui ne fait pas partie du système d'Angular, vous devez informer Angular de vos modifications afin qu'Angular puisse obtenir la dernière valeur pour la refléter sur la page.
Vous pouvez donc utiliser la méthode suivante pour notifier angulaire
$scope.$apply(function(){
jQuery('input').val(newValue);
})
怪我咯2017-05-15 16:57:24
La bonne façon est... de ne pas modifier la vue manuellement.
Proposition :
1. Essayez d'exposer le modèle, puis modifiez le modèle. Après la modification, appelez $scope.$apply(). De plus, afin d'éviter diverses erreurs inattendues, vous pouvez écrire setTimeout(function(){$scope.$apply()},0) comme ceci.
2. Dans tous les cas, si vous avez ce besoin, cela doit être dû à un événement, une opération utilisateur ou un ajax. Les opérations Ajax peuvent utiliser le service $http fourni par Angular. Les opérations utilisateur peuvent généralement être encapsulées dans des directives.