0

我使用Oracle JET QuickStart Basic 模板在 Oracle JET 中创建了一个示例应用程序。我希望应用程序在两个 mudule 之间进行通信。我已经尝试使用 Geertjan 的博客Intermodular communication in Oracle JET(Part 2)Intermodular communication in Oracle JET(Part 3)中提到的步骤,但不幸的是它似乎不起作用。如果有人向我解释如何使用 Oracle JET QuickStart Basic 模板进行模块间通信,那将是非常有帮助的。谢谢你。

4

2 回答 2

2

在导航到其他模块时,您可以传递一些参数。

<!-- Module binding with params -->
<div data-bind="ojModule: {name: currentName, params: currentName}"></div>

http://www.oracle.com/webfolder/technetwork/jet/jsdocs/ojModule.html

并且可以在附加模块时使用参数初始化变量

self.handleAttached = function (info) {
          var param = ko.utils.unwrapObservable(info.valueAccessor()).params;
          console.log(param);
          self.variableToBeInitialized= param;
          };

https://docs.oracle.com/middleware/jet230/jet/reference-jet/oj.ModuleBinding.ConventionMethods.html

于 2017-08-04T15:00:24.643 回答
1

您可以使用可以从所有模块访问/修改的全局变量。

第 1 步:定义要跨模块通信的变量(在 appController.js/main.js 中)。

self.var1= ko.observable("");
self.var2= ko.observable('');

第 2 步:在模块中,您可以在获取 rootModel- 后访问变量

self.rootModel = ko.dataFor(document.getElementById('globalBody'));

var variable1= self.rootModel.var1;
var variable2= self.rootModel.var2;

希望这可以帮助!

谢谢

于 2017-07-21T07:55:33.153 回答