recherche

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

angulaire.js - finish-callback() du plugin angulaire-timer n'actualise pas la vue

<p ng-show="smsSent">
<timer interval="1000" countdown="60" end-time="0" finish-callback="smsSent=!smsSent">{{seconds}}</timer>
</p>

Je veux appeler finish-callback une fois le compte à rebours terminé, puis la valeur de smsSent sera inversée, donc <p ng-show="smsSent">ce p sera masqué. Le problème est... maintenant que le compte à rebours atteint 0, je. observé que la valeur de smsSent a effectivement changé, mais <p ng-show="smsSent"> ce p n'est pas caché, ce qui signifie qu'il n'y a pas de tentative d'actualisation. S'il vous plaît, aidez-moi, comment puis-je masquer ce p

.
滿天的星座滿天的星座2785 Il y a quelques jours916

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

  • PHP中文网

    PHP中文网2017-05-15 17:07:21

    Merci pour l'invitation. Pouvez-vous expliquer comment écrire la commande timer, ou donner un lien vers jsbin ou jsfiddle.net pour la reproduire. L'information actuellement fournie est que la valeur a changé, mais le Dom n'est pas rendu. Je pense que vous pouvez déclencher la vérification sale dans finish-callback $apply ou $evalAsync.

    ------------------ ligne de démarcation ----------------

    Trouvez le plug-in que vous avez mentionné https://github.com/siddii/ang... , je retirerai la demande bientôt, et vous n'avez pas besoin de le déclencher activement lors du finish-callback $apply.

    ------------------Ligne de séparation----------------
    https://github.com/ siddii/ang...

    La requête a été extraite, principalement le paragraphe suivant Lorsque $scope.finishCallback est appelé, le cycle de vérification sale est activement déclenché

                 if($scope.finishCallback) {
     -              $scope.$eval($scope.finishCallback);
     +              if ($rootScope.$$phase) {
     +                $scope.$evalAsync($scope.finishCallback);
     +              } else {
     +                $scope.$apply($scope.finishCallback);
     +              }
                  }

    répondre
    0
  • Annulerrépondre