Вопрос

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

Добрый день!

 

Можете подсказать , я хочу через 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.

Войдите или зарегистрируйтесь, чтобы комментировать