Heim > Fragen und Antworten > Hauptteil
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? ? ?