Пытаюсь подключить Яндекс карту в проекте. За основу взял следующий пример: 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 собирал через генератор
А модификатор-то есть на дом-ноде? ;-) Мало информации, чтобы сказать в чем причина.
Разобрался с проблемой.
в примере используется
{ name: this.name, modName: 'api', modVal: 'ymaps' }
пересмотрел документацию. Вместо
name
должно бытьblock
{ block: this.name, modName: 'api', modVal: 'ymaps' }
всё заработало