Войти с помощью github
Форум /

Имеется блок chart с элементом legend. как можно вызвать методы элемента в ymodule? Каждая диаграмма содержит элементы(заголовок, легенда,график и тд) Хочу создать блок для диаграмм у которого в роле элементов выступают как раз элементы(заголовок, легенда,график и тд) В элементе легенды хочу сделать статический метод что то вроде js render() а из блока chart вызывать его. может где то я не прав в методолгоии и нужно реализовывать легенду отдельным блоком?

chart.js

modules.define('chart', ['i-bem__dom','d3','BEMHTML'], function (provide, BEMDOM, D3, BEMHTML) {
    provide(BEMDOM.decl(this.name, {
        onSetMod: {
            js: {
                inited: function () {
                    this._graphic = this.findElem('graphic');           //Находим елемент графика
                    this._legend = this._elem('legend');                //Находим елемент легенды
                    this._cdata = this.params.data;                     //предварительная обработка входящих данных
                                        this._legend.someMethod() // Ругается что не существует метод
                }
            }
        }
    }));
});

legend/chartlegend.js

modules.define('chart', ['i-bem__dom','d3'], function(provide, BEMDOM, D3) {
provide(BEMDOM.decl(this.name, {
    onSetMod: {
        js: {
            inited: function(){
        this.__base.apply(this, arguments);     // тут не понятно немножко момент № 1
                console.log("chart_legend inited");
            }
        }
    },
    someMethod: function() {
             console.log("chart_legend generate");
                 return "911";
    },

}));
});

обязательно js-модуль дефайнить как блок? если так делать то модель элемента поавторитетней модуля блока, поэтому нужно this.__base.apply() вызывать?!

И немножко не по теме, почему то в таком контексте(chart.js) не срабатывает js BEMHTML.apply({block:'someblock',content:'someContent'}); - ничего не возвращает.