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?
阿神
阿神 2017-05-31 10:41:00
0
1
597

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 ? ? ?

阿神
阿神

闭关修行中......

répondre à tous(1)
巴扎黑

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal