bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

Не работает инициализация по модификатуру #245

Closed belozer closed 9 years ago

belozer commented 9 years ago

Пытаюсь подключить Яндекс карту в проекте. За основу взял следующий пример: https://github.com/zloylos/ymapsbem

Но вот почему-то не работает инициализация по декларации { name: 'this.name', modName: 'api', modVal: 'ymaps' }

modules.define('map', ['i-bem__dom', 'loader_type_js', 'jquery'], function(provide, BEMDOM, loader, $) {
    provide(BEMDOM.decl({ name: this.name, modName: 'api', modVal: 'ymaps' }, {
        onSetMod: {
            'js': {
                inited: function () {
                    this.loadMapsApi();
                }
            }
        },
    }));
});

Но если декларацию делать только по блоку, то всё работает

modules.define('map', ['i-bem__dom', 'loader_type_js', 'jquery'], function(provide, BEMDOM, loader, $) {
    provide(BEMDOM.decl(this.name, {
        onSetMod: {
            'js': {
                inited: function () {
                    this.loadMapsApi();
                }
            }
        },
    }));
});

bem-stub собирал через генератор

qfox commented 9 years ago

А модификатор-то есть на дом-ноде? ;-) Мало информации, чтобы сказать в чем причина.

belozer commented 9 years ago

Разобрался с проблемой.

в примере используется { name: this.name, modName: 'api', modVal: 'ymaps' }

пересмотрел документацию. Вместо name должно быть block { block: this.name, modName: 'api', modVal: 'ymaps' }

всё заработало