0

Also habe ich einen Endpunkt, der den Inhalt vieler Entitäten parallel zurückgibt.AngularJS Cache-Batch-Entity GET zu einzelnen Entitätsdiensten?

Ich habe einen gemeinsam genutzten Dienst, der diesen Endpunkt aufruft und sie in eine gemeinsame $cacheFactory setzt.

Wenn GET /base_entity/<id>/all Route ersten getroffen wird, dann GET /entity/<id> sollte die Cache-Kopie zurück.

Was ist die beste Vorgehensweise beim Erklären des GET /entity/<id>-Dienstes, keine HTTP-Übertragung durchzuführen, bis GET /base_entity/<id>/all eine Chance hatte, abgeschlossen zu werden?

$broadcast/$emit Ansatz scheint ungerade. Ich nehme an, ich könnte diese geteilte $cacheFactory mit cache.put('START /all for ID:' +, id) und cache.put('FIN /all for ID:' +, id) verwenden, aber nicht sicher, ob das eine seltsame Art ist, das Problem zu lösen.

Antwort

0

Nach dem Erstellen einer neuen Ansicht und Controller. Die constructor des Controllers ruft GET /base_entity/<id>/all auf und speichert sie zwischen $state.go, wobei $stateParams übergeben wird. Gleichzeitig zeigt die Ansicht eine glänzende Grafik, die directive lädt.

Wenn nun der Status /entity/<id> in den Status wechselt, prüft der Dienst zuerst den gesamten Cache; aktualisiert seinen Cache entsprechend; überprüft dann den Cache und gibt das in einem $q Versprechen zurück, oder schlägt andernfalls $http.