В настоящее время я пытаюсь понять, как я могу получить одно значение из sap.ui.model.json.JSONModelSAPUI5 получить одно свойство из JSON-модели
в моем главном экране:
var gConfigModel = new sap.ui.model.json.JSONModel();
var getConfigCallback = function(config) {
gConfigModel.setData(config);
};
oController.getConfiguration(getConfigCallback);
console.log(gConfigModel);
в моем контроллере:
getConfiguration : function(callback) {
var sServiceUrl = "/sap/opu/odata/sap/xxx/ConfigurationSet('Initialize')";
var config = {};
callback(config);
$.getJSON(sServiceUrl).done(function(data) {
config = data.d;
callback(config);
});
},
в моем console.log заявлении я могу видеть, что данные были успешно прошли от бэкэнда и успешно установлены на модель JSON. Мое требование - сохранить значение атрибута Editable в одной переменной.
Я уже пробовал gConfigModel.getProperty ('/'), не работал. пытался получить доступ к gConfigModel.oData был не определен. Как сохранить его в одном значении?
Решение Комментарий: Если вы поймаете данные из бэкэнд, вам нужно позаботиться о том, сколько времени потребуется. данные могут быть доступны позже, чем ожидалось, в моем случае я добавил 1s таймаут, после этого я могу получить доступ к свойству легко
setTimeout(function() {
console.log(gConfigModel.getProperty('/Editable'));
}, 1000);
GetData() должен возвращать объект OData. Поэтому для доступа к Editable просто используйте var editable = gConfigModel.getData(). Editable; – user2808624
Метод getData() возвращает объект, у которого нет узлов или атрибутов ниже .. :(Что мне не хватает? – zyrex
Для тех, кто заглянул в этот случай позже, это было связано прежде всего с стандартным «async-things-do- not-happen-in-предполагаемая последовательность ". Читайте о' ajax success callbacks' для фона. По сути, OP пытался получить доступ к данным, которые еще не были возвращены с сервера. –