recherche

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

javascript - La variable globale $rootScope a été mise à jour dans le contrôleur de la page de saisie de données, mais la variable a toujours l'ancienne valeur lorsqu'elle est accessible pendant beforeLeave?

Le code dans le contrôleur de la page de saisie des données :

.controller("MobileInputCtrl", function ($scope, $rootScope) {
  $scope.$watch("myForm.$dirty", function (newVal) {
    $rootScope.isDirty = newVal;
  });
})

Mettez un test<p> sur la page de saisie de données pour afficher la valeur de la variable globale $rootScope.isDirty afin de prouver que la valeur de la variable a été correctement mise à jour sur true.

Le code de la méthode de gestion des événements $ionicView.beforeLeave() enregistré dans le module de niveau supérieur :

angular.module("app", [])

.run(function ($ionicPlatform, $rootScope) {
  $ionicPlatform.ready(function () {
    $rootScope.$on("$ionicView.beforeEnter", function (event, view) {
      $rootScope.isDirty = false;
    });

    $rootScope.$on("$ionicView.beforeLeave", function (event, view) {
      alert($rootScope.isDirty); // 显示仍然为false,百思不得其解!
    });
  });
});

Dans le test<p> de la page de saisie des données, il a été clairement vu qu'isDirty a été correctement mis à jour sur true. Mais lorsque j'ai quitté la page de saisie des données, j'ai vu que la valeur isDirty affichée dans la boîte de dialogue contextuelle était toujours fausse. J'étais perplexe ! Se pourrait-il que cette variable puisse avoir deux valeurs ? ? ?

阿神阿神2771 Il y a quelques jours629

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

  • 巴扎黑

    巴扎黑2017-05-31 10:43:00

    Il est préférable de ne pas utiliser ionic, la mise en cache est un gros gouffre. . .

    répondre
    0
  • Annulerrépondre