Skip to content
DimitryDushkin edited this page Sep 26, 2014 · 4 revisions

Объявление блока

BEMPRIV.decl(blockName, {

   // Код, выполняемый при создании экземпляра блока   
   init: function() {
       
       // Значение параметра переданного при создании блока
       this.params.someParam;

       // Вызов метода родительского блока
       this.__base();
       
       // Доступ к data, переданного при создании экземпляра блока
       this.data;
   }

}, {
   
    // Статический метод, доступный без создания экземпляра блока
    staticMethod1: function() {
         return true; 
    }

});

Способы получения BEMJSON блока

// Создание блока и сразу вызов его функции getBEMJSON
BEMPRIV.json(blockName, [data], [params]);

// Создание блока
var blocks = BEMPRIV.create(blockName, [data], [params]);
blocks.bemjson();

// Eсли почему-то блок в статическом методе возвращает BEMJSON
BEMPRIV.getBlock(blockName).getSomeThing();

Операции с content, mods и т.п.

BEMPRIV.decl('blockName', {

    init: function() {
        
        this.setMod('type', 'search');

        this.content().push(BEMPRIV.json(someOtherBlock, this.data));

    }

});

Модификаторы

BEMPRIV.decl({ block: 'blockName', modName: 'type', modVal: 'someType1' }, {...});
BEMPRIV.decl({ block: 'blockName', modName: 'type', modVal: 'someType2' }, {...});
BEMPRIV.decl({ block: 'blockName', modName: 'mode', modVal: 'someMode' }, {...});

var newBlock = BEMPRIV.create('blockName', null, {
   mods: {
     type: 'someType1',
     mode: 'someMode'
  }
});