我使用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 模板进行模块间通信,那将是非常有帮助的。谢谢你。
问问题
1011 次
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 回答