Ich benutze eckig-drupal um Daten aus meinem Drupal-Backend zu bekommen. Ich versuche eine Bildergalerie zu erstellen, von den out-of-the-box-Endpunkten, die ich vom Dienstmodul erhalte, rufe ich Knotenlast an, um einen Knoten zu erhalten. Dann ziele ich auf die Bilder, die an diesen Knoten angehängt sind, schleife sie und hole die Datei in ein Array.Angular ng-repeat zum Erstellen von Bildern - versucht auch, url zu lösen
Meiner Ansicht nach verwende ich ng-repeat, um mein loadedImages-Array zu loopen und die Datei uri zu erhalten, um ein Bild zu erstellen.
Problem: ngRepeat geht sofort und die Bilder werden aktualisiert, sobald das Versprechen für jeden einzelnen gelöst ist, was in Ordnung ist. Das Problem ist, ich ein verbotenen GET direkt an der Spitze der Konsole erhalten, weil die Ansicht, die ein Bild mit nur dem Platzhalter zu machen versucht: -
GET http://localhost/headless-test/app/%7B%7B::val.uri_full%7D%7D 403 (Verboten)
Was ist der beste Weg, dies zu tun ? Ich möchte einfach nicht ng-repeat versuchen, irgendetwas zu machen, bis mein Array einen Wert hat - zumindest denke ich, dass das Problem ist, jede Hilfe wäre willkommen. Noch eine Sache, das funktioniert, ich bekomme die Bilder und ich kann sie sehen - will nur nicht das GET Fehler in der Konsole.
Controller-Code: -
drupal.node_load(12).then(function(node) {
console.log(node, "node returned");
vm.loadedImages = [];
for (var i = 0; i < node.field_test_image_3.und.length; i++) {
drupal.file_load(node.field_test_image_3.und[i].fid).then(function(file) {
vm.loadedImages.push(file);
console.log(vm.loadedImages, "loaded images");
});
}
});
Ausblick:
<div ng-cloak>
{{::vm.loadedImages}}
<div ng-repeat="(key, val) in vm.loadedImages">
<img src="{{::val.uri_full}}" />
</div>
</div>