Ich entwickle Anwendung mit AngularJS, die Business-Formular druckt. Rufen Sie Daten von Google Cloud Endpoint ab, übersetzen Sie mit eckiger Übersetzung und öffnen Sie den Druckdialog.AngularJS: Wie warten, bis die Übersetzung abgeschlossen ist
Meine Anwendung funktioniert in fast Fall, aber manchmal Druckdialog öffnet sich vor der Übersetzung abgeschlossen.
MyContoller.js ist wie folgt.
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 wie folgt.
<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>
:
In den meisten Fällen übersetzt Wert wird in der Seitenansicht angezeigt, aber manchmal val1 val2
angezeigt wird.
Wie kann ich mein Programm reparieren, um den Druckdialog zu öffnen, nachdem die Übersetzung abgeschlossen wurde?
Vielleicht https://docs.angularjs.org/api/ng/directive/ngCloak – Phil
ich gapi sehen müssen versuchen, geladen. client.myCloudEndpoint.retrieve(), aber wenn es ein Versprechen zurückgibt, können Sie .then() – MingShun
@MingShun, Danke für Ihre Antwort verwenden. Aber was ich vor mir habe, ist * nicht * von Google abzurufen gescheitert. Das Abrufen von Google ist erfolgreich, aber manchmal wird das Dialogfeld geöffnet, bevor die Übersetzung abgeschlossen ist. –