eConti - программирование в вопросах и ответах

Невозможно прочитать свойство "чтение" неопределенного

Я создал mockserver для тестирования в моем приложении sapui5.

Определение структуры dataSources в файле manifest.json выглядит следующим образом:

"dataSources": {
    "NorthwindService": {
        "uri": "/",
        "type": "OData",
        "settings": {
            "odataVersion": "2.0",
            "localUri": "localService/metadata.xml"
        }
    }
}

и определение модели:

"models": {
    "i18n": {
        "type": "sap.ui.model.resource.ResourceModel",
        "settings": {
            "bundleName": "ch.app.northwind.i18n.i18n"
        }
    },
    "northwind": {
        "uri": "",
        "type": "sap.ui.model.odata.v2.ODataModel",
        "settings": {
            "defaultOperationMode": "Server",
            "defaultBindingMode": "OneWay",
            "defaultCountMode": "Request"
        },
        "dataSource": "NorthwindService",
        "preload": true
    }
},

вызов модельного контроллера:

this.getView().getModel("northwind")
.read("/Customers/$count", {
  success: function(oData) {
    jQuery.sap.log.info(oData);
  },
  error: function(oError) {
    jQuery.sap.log.info(oError);
  }
});   

Он жалуется:

Overview.controller.js?eval:29 Uncaught (in promise) TypeError: Cannot read property 'read' of undefined
    at f.queryTotalCustomers (Overview.controller.js?eval:29)
    at f.onInit (Overview.controller.js?eval:12)
    at f.a.fireEvent (EventProvider-dbg.js:228)
    at f.a.fireEvent (Element-dbg.js:431)
    at f.fireAfterInit (ManagedObjectMetadata-dbg.js:568)
    at r (Component-dbg.js:162)
    at f.h.runAsOwner (Component-dbg.js:549)
    at P (View-dbg.js:429)
    at eval (View-dbg.js:467)  

Что я делаю неправильно?

12.06.2018


Ответы:


1

Прежде всего: не устанавливайте '/' или пустой URI для вашего источника данных и модели. Предложите им путь, который вам нравится, отличный от этого. '/' зарезервирован для главной страницы или index.html

Во-вторых, убедитесь, что вы получили модель сразу после ее создания, а не раньше. Вероятно, вы получаете модель в событии onInit, когда она еще не готова. Используйте другое событие или установите обработчик событий для события metadataLoaded вашей модели.

13.06.2018
Новые материалы

ИИ для общего блага, часть вторая
В нашем последнем блоге мы исследовали возможности ИИ для общего блага, указав на несколько инициатив по поиску действенных решений для продвижения справедливых и беспристрастных систем ИИ. По..

Время расцвета закончилось
Большую часть своей карьеры в индустрии программного обеспечения программисты работали с головой в песок. Успех в отрасли требует навыков презентации и обучения других. Ценность улучшенных..

Будущее сельского хозяйства: новый уровень производительности с современными технологиями
По мере роста населения мира растет и спрос на продукты питания. Фермеры сталкиваются с растущим давлением необходимости повышать урожайность и максимизировать производительность, манипулируя..

Состояние совместной фильтрации в 2022 году, часть 1
ResBeMF: Улучшение прогнозируемого охвата совместной фильтрации на основе классификации (arXiv) Автор: Анхель Гонсалес-Прието , Авраам Гутьеррес , Фернандо Ортега , Рауль Лара-Кабрера..

Зачем изучать PYTHON в 2022 году !
Python — востребованный, доступный язык программирования с активным, постоянно растущим сообществом пользователей. Для тех, кто хочет сменить профессию в мире технологий с помощью..

Решение капч с помощью Puppeteer
Это руководство предназначено для текстовых кодов, а не для reCAPTCHA Google (см. конец этого сообщения). Требования: Антикапча или любой другой сервис по разгадыванию капчи. Модуль..

7 встроенных библиотек Python, которые необходимо знать
7 встроенных библиотек Python, которые необходимо знать Стандартная библиотека Python значительно упрощает жизнь программистов, предоставляя широкий набор функций. Мы выбираем несколько..