如何在 Oracle JET 中的视图之间传递数据?

How do I pass data between views in Oracle JET?

我正在使用 navbar 模板开发 Oracle JET 应用程序,该应用程序从 REST API 获取数据。在主视图 interfaces.html 上,我们有一个 oj-table 显示基于从 REST API 获取的数据的所有接口的摘要。单击 table 的 interfaceId 列上的 link,应用程序导航到一个新视图 interfaceDetails.html,该视图显示有关界面的更多详细信息。

目前,我正在通过 appController.js 中声明的 observable 将数据传递到 interfaceDetails.html 视图,它从 [=] 中的选定行获取特定接口数据13=] 通过选择侦听器。但是,我想重新设计 interface.html 视图中的 API 以仅提供摘要数据,并从 interfaceDetails.html 的视图模型中调用另一个 API 来获取详细信息的特定接口。

我正在使用此选择侦听器获取 table 中的选定行:

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');
    });
}

有没有办法将最少的数据(例如接口 ID)传递给 interfaceDetails 视图并让其自行获取详细信息?

如有任何帮助,我们将不胜感激。

提前致谢, Debojit

P.S。如果我的查询不够清楚,我们深表歉意;这是我的第一个 JET 应用程序。如果需要其他信息,请告诉我,我会相应地更新我的 post。

checkout this 核心路由器示例,我们通过 router.go 将员工索引作为参数传递给详细信息页面,并在我们进入该页面时获取员工详细信息(当然,在您的应用程序,您将执行 Rest 调用以获取数据)

this.router.go({ path: 'employee-detail', params: { index: indices[0] } });