Интермодульная связь в Oracle JET
Я создал образец приложения в Oracle JET, используя шаблон Oracle JET QuickStart Basic. Я хочу, чтобы приложение имело связь между двумя модулями. Я попытался использовать шаги, упомянутые в блоге Геерджана. Интермодульная связь в Oracle JET(часть 2) и Интермодульная связь в Oracle JET(часть 3), но, к сожалению, она не работает. Было бы очень полезно, если бы кто-нибудь объяснил мне, как выполнять интермодульную связь, используя шаблон Oracle JET QuickStart Basic. Спасибо.
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
Вы можете использовать глобальную переменную, которая может быть доступна / изменена из всех модулей.
Шаг 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;
Надеюсь это поможет!
Спасибо