Добрый день!
Можете подсказать , я хочу через sandbox взаимодействовать двух деталей. Имеется ввиду при выборе запись в первой детали , должен отобразиться второй деталь с фильтрованной переданной от первой значение.
В первом детале создал сообщение, и зарегистрировал в методе init.
init: function() {
this.callParent(arguments);
window.console.log("begin finance come here to show where error");
var messages = {
"GetFinanceBlock": {
mode: Terrasoft.MessageMode.BROADCAST,
direction: this.Terrasoft.MessageDirectionType.PUBLISH
}
};
this.sandbox.registerMessages(messages);
window.console.log("end finance come here to show where error");
}
И при выборе запись из таблицы, вызывается метод rowSelected, где публикуется сообщение:
rowSelected: function(primaryColumnValue) {
this.sandbox.publish("GetFinanceBlock", {arg1 : primaryColumnValue}, ["key"]);
window.console.log("end publish");
}
Во второй деталь метод init добавил subscribe для данного сообщение:
init: function() {
this.callParent(arguments);
window.console.log(" child come here to show where error");
var message={
"GetFinanceBlock": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.SUBSCRIBE
}
};
this.sandbox.registerMessages(message);
this.sandbox.subscribe("GetFinanceBlock", this.onMessageSubscribe, this, ["key"]);
window.console.log(" child end subscribe");
},
onMessageSubscribe: function(args) {
window.console.log("child call method subscribe args " + args + " " + JSON.stringify(args));
},
И добавил метод обработчик onMessageSubscribe для анализа передачи данные из первого модуля.
Проблема заключается в том, что при отправке сообщение второй модуль вообще не получает.
Можете подсказать чем связано такая проблема.
С уважием, Асылан.
Заранее благодарю!
Нравится
Если я правильно вас понял, то у вас на странице находится 2 детали.
При выборе определенного значения на Детали №1, должна отобразиться деталь №2.
Сообщение вы публикуете в Детали №1, но принять это сообщение, вы должны на странице, где находятся обе эти детали.
Создайте атрибут, например, в который устанавливайте значение true, когда получено сообщение. А видимость детали повесьте на этот атрибут.
Асылан, инструкция по работе с механизмом Sandbox есть в Академии.Возможно, что-то не было учтено, например, в одной указано BROADCAST, а в другой PTP.