javascript - 在資料輸入頁面的controller中已更新$rootScope全域變量,但在beforeLeave時存取該變數仍為舊值?
阿神
阿神 2017-05-31 10:41:00
0
1
618

資料錄入頁面的controller中的程式碼:

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

在資料錄入頁面上放了一個測試<p>來顯示$rootScope.isDirty全域變數值,證明該變數值已正確地更新為true。

頂層模組中註冊的$ionicView.beforeLeave()事件處理方法代碼:

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

在資料錄入頁面的測試<p>上已經清楚看到isDirty已被正確地更新為true。但離開資料錄入頁面時,看到彈出的提示框顯示的isDirty值卻仍為false,百思不得其解!難道這個變數還能兩個不成? ? ?

阿神
阿神

闭关修行中......

全部回覆(1)
巴扎黑

最好不要喲過ionic,快取是個大坑。 。 。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板