suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Die globale Variable $rootScope wurde im Controller der Dateneingabeseite aktualisiert, aber die Variable hat immer noch den alten Wert, wenn während beforeLeave? darauf zugegriffen wird.

Der Code im Controller der Dateneingabeseite:

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

Fügen Sie einen Test<p> auf der Dateneingabeseite ein, um den Wert der globalen Variablen $rootScope.isDirty anzuzeigen und zu beweisen, dass der Variablenwert korrekt auf „true“ aktualisiert wurde.

Der Code der Ereignisbehandlungsmethode $ionicView.beforeLeave(), der im Modul der obersten Ebene registriert ist:

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,百思不得其解!
    });
  });
});

Im Test<p> der Dateneingabeseite wurde deutlich, dass isDirty korrekt auf true aktualisiert wurde. Aber als ich die Dateneingabeseite verließ, sah ich, dass der im Popup-Eingabeaufforderungsfeld angezeigte isDirty-Wert immer noch falsch war. Könnte es sein, dass diese Variable zwei Werte haben kann? ? ?

阿神阿神2737 Tage vor602

Antworte allen(1)Ich werde antworten

  • 巴扎黑

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

    最好不要哟过ionic,缓存是个大坑。。。

    Antwort
    0
  • StornierenAntwort