Kod dalam pengawal halaman kemasukan data:
.controller("MobileInputCtrl", function ($scope, $rootScope) {
$scope.$watch("myForm.$dirty", function (newVal) {
$rootScope.isDirty = newVal;
});
})
Letakkan ujian<p> pada halaman kemasukan data untuk memaparkan nilai pembolehubah global $rootScope.isDirty untuk membuktikan bahawa nilai pembolehubah telah dikemas kini dengan betul kepada benar.
Kod kaedah pengendalian acara $ionicView.beforeLeave() yang didaftarkan dalam modul peringkat atas:
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,百思不得其解!
});
});
});
Dalam ujian<p> halaman kemasukan data, telah dilihat dengan jelas bahawa isDirty telah dikemas kini dengan betul kepada benar. Walau bagaimanapun, apabila meninggalkan halaman kemasukan data, saya melihat bahawa nilai isDirty yang dipaparkan dalam kotak gesaan pop timbul masih palsu. Mungkinkah pembolehubah ini boleh mempunyai dua nilai? ? ?
Sebaik-baiknya jangan gunakan ionik, caching adalah perangkap besar. . .