javascript - Pembolehubah global $rootScope telah dikemas kini dalam pengawal halaman kemasukan data, tetapi pembolehubah itu masih nilai lama apabila diakses semasa beforeLeave?
阿神
阿神 2017-05-31 10:41:00
0
1
623

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

阿神
阿神

闭关修行中......

membalas semua(1)
巴扎黑

Sebaik-baiknya jangan gunakan ionik, caching adalah perangkap besar. . .

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan