Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Доступ к компоненту из обработчика события его HTML-элемента (https://javascript.ru/forum/extjs/55945-dostup-k-komponentu-iz-obrabotchika-sobytiya-ego-html-ehlementa.html)

khusamov 23.05.2015 19:15

Вот кусок кода:

onUpdatePolylineControlled: function(type, points) {
		if (type == "add") {
			var me = this;
			points.forEach(function(point) {
				point = me.getSurface().getMatrix().transformPoint(point.toArray());
				var circle = me.add(me.getConfigCircle(point));

				circle.getEl().dom._circle = circle; // Временное решение проблемы

				circle.getEl().on("click", "onCircleClick", me);
			});
		}
},
	
onCircleClick: function(e, t, eOpts) {
		
		var circle = t._circle; // Временное решение проблемы
		
		var me = this;
		e.stopEvent();
		var index = me.items.indexOf(circle);
		if (index == 0) me.fireEvent("close");
},

khusamov 23.05.2015 19:24

Нашел решение:

onUpdatePolylineControlled: function(type, points) {
		if (type == "add") {
			var me = this;
			points.forEach(function(point) {
				point = me.getSurface().getMatrix().transformPoint(point.toArray());
				var circle = me.add(me.getConfigCircle(point));

				circle.getEl().on("click", "onCircleClick", me, {
					args: [circle]
				});
			});
		}
},
	
onCircleClick: function(circle, e, t, eOpts) {
		
		var me = this;
		e.stopEvent();
		var index = me.items.indexOf(circle);
		if (index == 0) me.fireEvent("close");
},


Использовал эту фичу метода on():

Цитата:

http://docs.sencha.com/extjs/5.1/5.1...iner-method-on
args : Array (optional)
Optional arguments to pass to the handler function. Any additional arguments passed to fireEvent will be appended to these arguments.

Правда смутил тот факт, что написано appended, а на самом деле prepended. То есть параметр circle мне пришлось вставить ВНАЧАЛЕ, а не в конце, как того предприсывает инструкция. Почему так???

nohuhu 26.05.2015 19:51

Цитата:

Сообщение от khusamov (Сообщение 372070)
Правда смутил тот факт, что написано appended, а на самом деле prepended. То есть параметр circle мне пришлось вставить ВНАЧАЛЕ, а не в конце, как того предприсывает инструкция. Почему так???

Может быть потому, что аргументы fireEvent добавляются к args, а не наоборот? Хотя вообще согласен, документация мутновата. Открыл тикет.

khusamov 26.05.2015 21:28

Цитата:

Может быть потому, что аргументы fireEvent добавляются к args, а не наоборот?
Все может быть, но в инструкции желательно такие мутности не писать конечно. У них раньше там была возможность комментария оставлять для потомков, а теперь такого нету... не знаю даже куда сохранять теперь эт находки... пока открыл группу вконтакте, и туда складирую. А то ведь и самому пригодится - память не резиновая.

nohuhu 27.05.2015 01:49

Складировать не надо, любая ошибка или непонятность в документации - это баг. У нас в команде два человека выделено на документацию, только этим и занимаются. Открывайте тикеты, они пофиксят.

Конкретно этот баг я уже открыл, а на будущее просто открывайте сообщение в официальном форуме, техподдержка откроет тикет и дальше по процедуре.

khusamov 27.05.2015 14:44

Цитата:

Открывайте тикеты, они пофиксят.
У меня регистрация есть, а вот доступа нет. Я запрашивал доступ - но они даже просто на письма не отвечают, не то чтобы доступ дать.

И никто до сих пор не может объяснить данное явление, даже те, у кого доступ имеется. Поэтому я и подзабил на это дело.

Я не знаю способа иного как открывать тикеты.

nohuhu 27.05.2015 21:13

Доступа нет куда? И где вы этот доступ запрашивали?

Регистрация на форуме бесплатная, доступ к открытым разделам тоже. Открыть тикет в нашей JIRA напрямую у вас не получится, поэтому просто открывайте новую тему в форуме с описанием проблемы, ребята из техподдержки её прочитают и откроют за вас тикет. Они там специально для этого сидят.

khusamov 28.05.2015 15:43

Цитата:

Доступа нет куда? И где вы этот доступ запрашивали?

Регистрация на форуме бесплатная,
Ну да, я там как раз и зарегистрирован. Но у меня нет прав доступа для создания тем и написания ответных постов. Даже нет доступа на чтение некоторых разделов.

Я им писал об этом. Но они не отвечают.

nohuhu 28.05.2015 21:57

Странно. Какой у вас в том форуме юзернейм? Я попинаю форумщиков.

khusamov 29.05.2015 00:22

khusamov


Часовой пояс GMT +3, время: 20:38.