recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - angulaire1.x, conflit entre l'opération dom et l'opération de données ng

http://codepen.io/anon/pen/JXogBj?editors=1010

Comme indiqué dans le code ci-dessus, si
clique sur 1:dom操作 puis clique sur 2:ng操作, la valeur de l'étiquette ne changera pas à moins que vous ne cliquiez sur 3:ng操作 puis sur 2:ng操作.
Y a-t-il un moyen de faire en sorte que 2:ng操作 prenne toujours effet ?

仅有的幸福仅有的幸福2797 Il y a quelques jours756

répondre à tous(1)je répondrai

  • 怪我咯

    怪我咯2017-05-15 17:01:06

    Expliquez d'abord la raison

    • 1 : L'opération DOM modifie directement la valeur de View, mais $scope.name est toujours 123 et n'a pas changé. C'est très important

    • .
    • 2 : opération ng, car $scope.name est toujours 123 et on lui attribue une valeur de 123 à ce moment-là, il ne fait en fait rien

    • 3 : ng opération, $scope.name se voit attribuer une valeur de 124. À ce moment, le nom change et angulaire revient pour mettre à jour la valeur de la vue. Parce que la valeur est la même, la. l’effet ne peut pas être vu. Cliquez ensuite sur l'opération 2:ng et $scope.name se voit attribuer une valeur de 123. Si elle est modifiée, la valeur de la vue sera mise à jour de manière synchrone.

    Un peu alambiqué

    Supplément

    var helloApp = angular.module("helloApp", []);
    helloApp.controller("HelloCtrl", function($scope) {
      $scope.name = "123";  
      
      $('#domopr').click(function(){
        $scope.$apply(function(){
           $scope.name = "124";
        });
      });
    });

    répondre
    0
  • Annulerrépondre