2015-04-28 65 views
0

無法功能時$範圍的價值得到$範圍的值函數時,在角JS獲得在angularjs

這怎麼看起來像

module.controller('MainController', function($scope, $window, $rootScope, checkConnection) { 
    $scope.online = false; 
    $scope.deviceReady = false; 
    document.addEventListener("deviceready", onDeviceReady, false); 

    function onDeviceReady() { 
     checkConnection.checkCon($scope); 
     $scope.checkInetNetwork = $rootScope.checkInetNetwork; 

     if ($rootScope.checkInetNetwork == "true") { 
      $scope.online = true; 
     } else { 
      $scope.online = false; 
     } 
    } 
}); 

我不能圖爲什麼<p ng-show="online">ThAnk You Thank you</p>爲什麼這不顯示。即使我是真的。在這個功能的外面,它的作用就像魅力。

任何解決方案?

回答

2

因爲您正在更改角度摘要循環以外的範圍值。

你可以調用$適用於運行消化週期進行修復

function onDeviceReady() { 
    checkConnection.checkCon($scope); 
    $scope.checkInetNetwork = $rootScope.checkInetNetwork; 

    if ($rootScope.checkInetNetwork == "true") { 
     $scope.online = true; 
    } else { 
     $scope.online = false; 
    } 

    $scope.$apply(); 
} 

function onDeviceReady() { 
    checkConnection.checkCon($scope); 
    $scope.checkInetNetwork = $rootScope.checkInetNetwork; 

    $scope.online = $rootScope.checkInetNetwork == "true"; 

    $scope.$apply(); 
} 
+0

太棒了! – user3201500

1

您需要運行一個$scope.$apply,因爲在Angular的知識之外發生了一些事情。

function onDeviceReady() { 
    checkConnection.checkCon($scope); 
    $scope.checkInetNetwork = $rootScope.checkInetNetwork; 

    if($rootScope.checkInetNetwork == "true"){ 
     $scope.online = true; 
    } 
    else 
    { 
     $scope.online = false; 
    } 
    $scope.$apply(); 
} 
+0

謝謝!它有幫助。我得到了它的工作! – user3201500

0

使用$rootScope.online = false,而不是$scope.online = false,所以你可以有$範圍的接入無處不在,你想打電話這個。

+0

沒有這種方法是行不通的。但是,非常感謝你的支持 – user3201500

+0

對不起,我以爲你不能訪問你的$範圍! :) 不客氣! :) –