【问题标题】:Intermodular communication in Oracle JETOracle JET 中的模块间通信
【发布时间】:2017-05-21 12:11:29
【问题描述】:

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

【问题讨论】:

  • 您能否提供更多有关您尝试过的内容以及遇到的错误的详细信息?从您阅读的博客文章中可以看出,有多种方法可以做到这一点。

标签: javascript oracle oracle-jet knockout-postbox


【解决方案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

【讨论】:

  • 在你的答案中包含一些代码,以防链接中断
【解决方案2】:

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

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

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

第二步:在modules中获取rootModel后就可以访问变量了-

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

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

希望这会有所帮助!

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-24
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 2015-07-23
    相关资源
    最近更新 更多