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

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

阿神
阿神

闭关修行中......

Antworte allen(1)
巴扎黑

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage