2016-09-17 8 views
0

Ionic 클라우드에서 최신 스냅 샷을 가져 와서 Android 장치에 설치하려고합니다. 코드를 Ionic Deploy 문서에서 직접 복사했는데 코드가 오류없이 정상적으로 작동하지만 이전 파일을 실제로 Ionic Cloud에 업로드 한 새로운 파일로 업데이트하지 않는 것 같습니다Ionic Deploy 스냅 샷 업데이트 안 함

사용 : ionic upload --note " 버전 x "

다음으로 이동하여 을 클릭하십시오. 콘솔 로그 (안드로이드 장치에서)에서 로그 피드를 볼 때 , ,으로 추출되었음을 알 수 있습니다.

그러나 한 파일의 간단한 텍스트 변경 사항은 Android 기기의 앱에서 볼 수 없습니다. $ ionicDeploy.extract(); 뒤에 다른 함수를 호출해야합니까? 또는 $ ionicDeploy.load();

angular.module('starter', ['ionic', 'starter.controllers', 'ionic.cloud', 'starter.services','ngCordova','ngStorage','chart.js','angular-svg-round-progress']) 

    .config(function($ionicCloudProvider) { 

     $ionicCloudProvider.init({ 
     "core": { 
      "app_id": "xxxxxxxx" 
     } 
     }); 
    }) 

    .run(function($http,$ionicPlatform,$rootScope,$cordovaBluetoothSerial,$cordovaStatusbar,$window,$cordovaSQLite,$ionicDeploy) { 

     $ionicPlatform.ready(function() { 
      $rootScope.alreadyUpdated = 'false'; 

      if($rootScope.alreadyUpdated == 'false') 
      { 
       $ionicDeploy.check().then(function(snapshotAvailable) { 
         // When snapshotAvailable is true, you can apply the snapshot 
        $ionicDeploy.download().then(function() { 
          return $ionicDeploy.extract(); 

          $ionicDeploy.load(); 
          $rootScope.alreadyUpdated = 'true'; 
         }); 
       }); 
       console.log("MOST recent"); 
      } 

답변

1

$ionicDeploy.load() 전에 선 return $ionicDeploy.extract();이다, 이것은 당신이 $ionicDeploy.load() 부분에 결코 의미합니다 (return 키워드가 도달 할 수없는 코드합니다 - 어떤 괜찮은 IDE가도 당신을 위해이 강조 표시됩니다).

당신과 함께이 부분을 교체해야합니다 :

$ionicDeploy.extract().then(function() { 
    console.log("Extracted"); 
    $ionicDeploy.load(); 
    $rootScope.alreadyUpdated = 'true'; //this also is not needed FYI, but I left it to keep your code intact. see note 
}); 

을 - $ionicDeploy.load() 후, $rootScope.alreadyUpdated를 호출 할 필요가 없습니다. 이는 load() 함수가 앱을 다시로드하므로 처음 앱을 연 것처럼 범위가 다시 초기화되기 때문입니다.

행운

+0

어떻게 $ ionicDeploy.load는()도 다시 나 onDevice 준비 실행 블록을 호출 할 수 있습니까? – user1261710