2016-09-12 3 views
0

Ich entwickle eine plattformübergreifende App für IOS, verwende Cordova und Angular Material.Lade Inhalt md-tabs asynchron

Meine Startseite hat drei Registerkarten und in jeder Registerkarte wird der Inhalt vom Web-Service geladen.

Mein Problem ist, wenn App in Ios erstellt wurde, jedes Mal wenn ich zwischen Tabs umschalte, ist der Übergang nicht glatt. Es hat eine Verzögerungszeit, um Daten zu laden.

Gibt es eine Möglichkeit, Daten auf jeder Registerkarte asynchron zu laden, um den Übergang zu wechseln, wird sofort ausgeführt und Inhaltsdaten werden später aktualisiert.

+0

Ist es möglich, alle Inhalte in einem Rutsch zu laden und nur die erforderlichen Daten für die Registerkarte Inhalt übergeben, wenn die Registerkarte ausgewählt ist? –

+0

Entschuldigung, aber ich verstehe nicht genau, was Sie meinen. Du meinst, wenn ich die App lade, werde ich alle Daten für alle Tabs laden und wenn ein Tab ausgewählt ist, werde ich diese Daten für diesen Tab aktualisieren? – CodeMonster

+0

Ja, laden Sie beim Start alle Daten für alle Registerkarten. Wenn eine Registerkarte ausgewählt ist, werden nur die für den Inhalt erforderlichen Daten an den Tab-Inhalt übergeben. Ich kann mehr Details in eine Antwort einfügen, wenn Sie bevorzugen. –

Antwort

0

Hier ist ein Beispiel aus meinem Kommentar erweitern - CodePen

es die Fähigkeit zeigt, spezifische Daten aus allen Daten auf bestimmte Register Inhalt zu übergeben. Es gibt viele andere Möglichkeiten, um das gleiche Ergebnis zu erzielen.

Markup

<div ng-cloak="" class="tabsdemoDynamicHeight" ng-app="MyApp" ng-controller="MyController as vm"> 
    <md-content> 
    <md-tabs md-dynamic-height="" md-border-bottom="" md-selected="vm.selectedIndex"> 
     <md-tab label="one"> 
     <md-content class="md-padding"> 
      <content data="vm.allData[vm.selectedIndex]"></content> 
     </md-content> 
     </md-tab> 
     <md-tab label="two"> 
     <md-content class="md-padding"> 
      <content data="vm.allData[vm.selectedIndex]"></content> 
     </md-content> 
     </md-tab> 
     <md-tab label="three"> 
     <md-content class="md-padding"> 
      <content data="vm.allData[vm.selectedIndex]"></content> 
     </md-content> 
     </md-tab> 
    </md-tabs> 
    </md-content> 
</div> 

JS

angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache']) 

.controller("MyController", function() { 
    this.allData = [ 
    "John", "Paul", "George" 
    ]; 
}) 

.directive("content", function() { 
    return { 
    template: "<div>{{data}}</div>", 
    scope: {data: "="} 
    } 
}); 
Verwandte Themen