Проблема при взаимодействие между двумя деталями

Добрый день!

 

Можете подсказать , я хочу через 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 для анализа передачи данные из первого модуля.

 

Проблема заключается в том, что при отправке сообщение второй модуль вообще не получает.

 

Можете подсказать чем связано такая проблема.

 

С уважием, Асылан.

 

Заранее благодарю!

 

 

Нравится

5 комментариев

Если я правильно вас понял, то у вас на странице находится 2 детали.

При выборе определенного значения на Детали №1, должна отобразиться деталь №2.

Сообщение вы публикуете в Детали №1, но принять это сообщение, вы должны на странице, где находятся обе эти детали.

Создайте атрибут, например, в который устанавливайте значение true, когда получено сообщение. А видимость детали повесьте на этот атрибут.

Литвинко Павел,

Да, вы все правильно поняли. Спасибо , попробую . 

Литвинко Павел,

Попробовал анологичная ситуация. Сообщение отправляется, но подписчик не получает.

 

Асылан,

А как вы подписываетесь на сообщение?

Асылан, инструкция по работе с механизмом Sandbox есть в Академии.Возможно, что-то не было учтено, например, в одной указано BROADCAST, а в другой PTP.

Показать все комментарии