2016-07-08 42 views
0

我正在開發應用程序與AngularJS打印業務表單。 從Google雲端點檢索數據,使用角度平移翻譯並打開打印對話框。AngularJS:如何等待翻譯完成

我的應用程序幾乎可以工作,但有時打印對話框會在翻譯完成之前打開。

MyContoller.js是這樣的。

app.controller('MyController', ['$scope','$location','errorServiceFactory', 
    function ($scope,$location,errorServiceFactory) { 
     var param = $location.search(); 
     $scope.list = []; 
     loadingPanelFadeIn(); 
     gapi.client.myCloudEndpoint.retrieve({ 
      id:param.id, 
     }).execute(function (resp) { 
      if(!resp.code){ 
       loadingPanelFadeOut(); 
       $scope.list = resp.items; 
       $scope.$apply(); 
       window.print(); 
      }else{ 
       errorServiceFactory.errorService(resp); 
      } 
      loadingPanelFadeOut(); 
     }); 

    }]); 

html like this。

<div class="myclass" ng-repeat="item in list"> 
    <span class="big" style="(snip)" translate="title"> val1 </span> 
    <span class="big" style="(snip)" translate="to" translate-values="{to: '{{item.field1}}'}"> val2 </span> 
     : 

在大多數情況下,翻譯值顯示在打印預覽,但有時則顯示val1 val2

如何解決翻譯完成後打開打印對話框的程序?

+0

也許嘗試https://docs.angularjs.org/api/ng/directive/ngCloak – Phil

+0

我需要看到GAPI。 client.myCloudEndpoint.retrieve(),但是如果它返回一個promise,你可以使用.then() – MingShun

+0

@MingShun,謝謝你的迴應。但是我面臨的是*不*從Google檢索失敗。從Google取回成功,但有時會在翻譯完成之前打開對話框。 –

回答

0

您可以使用'解決'來解決這個問題。

只是把一些句子從the doc for resolve

「你可以用決心提供的內容或數據是自定義的狀態控制器。」

「如果這些依賴關係中的任何一個都是承諾,它們將在控制器實例化之前解析並轉換爲值,並觸發$ stateChangeSuccess事件。」

0

只是隱藏內容,直到DOM加載

[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { 
 
    display: none !important; 
 
}
<div ng-cloak> 
 
\t <div class="myclass" ng-repeat="item in list"> 
 
\t \t <span class="big" style="(snip)" translate="title"> val1 </span> 
 
\t \t <span class="big" style="(snip)" translate="to" translate-values="{to: '{{item.field1}}'}"> val2 </span> 
 
\t </div> 
 
</div>