我使用 Oracle JET QuickStart Basic模板在Oracle JET中创建了一个Sample应用程序。我希望应用程序在两个mudules之间进行通信。我尝试过使用Geertjan博客Intermodular communication in Oracle JET(Part 2)和Intermodular communication in Oracle JET(Part 3)中提到的步骤,但遗憾的是它似乎无法正常工作。如果有人向我解释如何使用Oracle JET QuickStart Basic模板进行模块间通信,那将是一个很大的帮助。谢谢。
答案 0 :(得分: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;
希望这有帮助!
由于
答案 1 :(得分:1)
导航到其他模块时,您可以传递一些参数。
<!-- 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