Клуб API Карт

Ошибка переопределения фабрики макетов

d.andrushchenko
18 марта 2013, 19:51

 

 

                                        var MyIconContentLayout = ymaps.templateLayoutFactory.createClass("", {

                                            build: function() {

                                                var parent = this.getParentElement(),

                                                    content = "Визиты: ",

                                                geoObjects = this.getData().properties.get('geoObjects');

                                                for (var i = 0; i < geoObjects.length; i++) {

                                                    content += geoObjects[i].properties.get('myProp') + " ";

                                                }

                                                content = '<div style="background-color: orange;width:300px;">' + content + '</div>';

                                                parent.innerHTML = content;

                                                return;

                                            }

                                       });

 

есть 2 кнопки - показать точки и убрать.

нажимаю показать все норм отображается.

при удалении выскакивает

                    visitsButton.events

                        .add('deselect', function () {

                            myMap.geoObjects.remove(cluster);

                            routerButton.disable();

                    }); 


Uncaught TypeError: Cannot read property 'parentNode' of undefined


что я делаю неправильно?!



2 комментария
Подписаться на комментарии к посту
В методе build нужно не забыть сначала вызвать родительский метод.
MyIconContentLayout.superclass.build.call(this);

как при клике на метку убрать саму иконку метки чтобы остался балун, а когда нажимаем другой балун, то иконка метки опять появлялась, это свойство я не знаю как переопределить

 

                                        var MyIconClusterContentLayout = ymaps.templateLayoutFactory.createClass("", {

                                            build: function() {

                                                MyIconClusterContentLayout.superclass.build.call(this);

                                                var parent = this.getParentElement(),

                                                    content = "Визиты: ",

                                                geoObjects = this.getData().properties.get('geoObjects');

                                                for (var i = 0; i < geoObjects.length; i++) {

                                                    content += geoObjects[i].properties.get('myProp') + ", ";

                                                }

                                                content = '' + content + '';

                                                parent.innerHTML = content;

                                            },

                                            clear: function() {

                                                parent.innerHTML = '';

                                            }

 

                                       });