Il y a 2 façons d'y parvenir:
1) Chemin asynchrone: Par défaut, l'appel HTTP que JSONModel effectue est asynchrone. Donc, si vous voulez accéder aux données après que la requête HTTP est terminée, vous devez utiliser la méthode attachRequestCompleted comme mentionné dans l'extrait de code ci-dessous. Cela appellera automatiquement l'auditeur après la requête HTTP est terminée et l'auditeur, vous pouvez joindre le JSONModel à votre point de vue ou d'effectuer d'autres logiques businsess comme indiqué ci-dessous:
var oModel = new JSONModel(jQuery.sap.getModulePath("QAQuickAccess", "/routes.json"));
oModel.attachRequestCompleted(null,function() {
console.log(oModel.getData());
this.getView().setModel(oModel) },
this);
2) manière synchrone: Si vous voulez que les données soient chargées immédiatement, vous pouvez utiliser la méthode loadData avec les paramètres ci-dessous. Cela rendra la requête HTTP synchrone:
var oModel = new JSONModel({});
var url = jQuery.sap.getModulePath("QAQuickAccess", "/routes.json")
oModel .loadData(url, "", false);
this.getView().setModel(oModel);
console.log(oModel .getData());
Mes journaux: oModel.getData() = {} oModel.getProperty ("/ TileCollection") = non défini oModel.getJSON() = {} oModel. oData = {} –
Mais dans le même contexte votre journal oModel est rempli avec les données? –
L'objet oData dans oModel est rempli avec le "TileCollection". L'écran de celui-ci est ci-dessus dans la question. Tous les journaux sont exécutés dans la fonction "onInit" du contrôleur. –