Как передать данные между представлениями в Oracle JET? - PullRequest
0 голосов
/ 10 апреля 2020

Я работаю над приложением Oracle JET с шаблоном navbar, и приложение получает данные из API REST. В главном представлении interfaces.html у нас есть oj-table, отображающий сводку всех интерфейсов на основе данных, извлеченных из REST API. При нажатии на ссылку в столбце interfaceId таблицы приложение переходит к новому представлению interfaceDetails.html, в котором отображаются дополнительные сведения о взаимодействии.

В настоящее время я передаю данные в interfaceDetails.html просмотр через observable s, объявленный в appController.js, который получает указанные данные интерфейса c из выбранной строки в interfaces.html через прослушиватель выбора. Однако я хотел бы перепроектировать API в представлении interface.html, чтобы предоставлять только сводные данные, и иметь другой API, вызываемый из модели представления interfaceDetails.html, для извлечения подробностей для указанного интерфейса c.

Я использую этот слушатель выбора, чтобы получить выбранную строку в таблице:

self.interfaceList= ko.observableArray();

//
//REST API calls, table data source setup, etc.
//

self.interfacesTblSelctionListener = function(event) {
    var interfaceId = null;
    event.detail.value.row.values().forEach(key => {
        interfaceId = key;
    });

    if(interfaceId != undefined) {
        $.each(self.interfaceList(), function(id, integration) {
            if(integration.INTERFACE_ID == interfaceId) {
                app.selectedIntegration(integration);
                self.serviceList(integration.Services);
            }
        });
    }
}

И я использую эту функцию для перемещения между представлениями:

self.openIntegrationDetailsView = function(event) {
    setTimeout(function() {
    self.router = oj.Router.rootInstance;
    self.router.go('interfaceDetails');
    });
}

Is Есть ли способ передать минимальные данные (например, идентификатор интерфейса) в представление interfaceDetails и получить эти данные самостоятельно?

Любая помощь будет принята с благодарностью.

Спасибо в заранее, Debojit

PS Извиняюсь, если мой запрос недостаточно ясен; это мое первое приложение JET. Пожалуйста, дайте мне знать, если потребуется дополнительная информация, и я соответствующим образом обновлю свой пост.

1 Ответ

1 голос
/ 10 апреля 2020

checkout это пример core-router, где мы передаем индекс сотрудника в качестве аргумента на страницу сведений через router.go и извлекаем сведения о сотруднике, когда мы попадаем на эту страницу (конечно, в вашем приложении). Вы будете делать s Звоните, чтобы получить данные)

this.router.go({ path: 'employee-detail', params: { index: indices[0] } });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...