# dev-sandbox

Инфраструктура песочницы.

Песочница - это страница для независимой разработки блока. Чтобы добавить блок на страницу песочницы, 
реализуйте его в технологии `sandbox.js`.

Пример:

```js
module.exports = {

    /**
     * Любая нужная информация для размещения блока в песочнице 
     */
    bemjson: {
        block: 'b1',
        data: { 
            name: 'John',
            surname: 'Doe'
        }
    },
    
    /**
     * Действия, которые нужно выполнить в начале
     * @param {Object} container - DOM-элемент контейнера для размещения блоков песочницы
     */
    init: function(container) {
        
        container.innerHTML += BEMHTML.apply(this.bemjson);
    }
};
```

В методе `init` вы можете выполнить любые нужные действия, например, добавить блок на страницу и вызвать его методы.
Вы можете обращаться к нужным полям чреез контекст вызова функции. Например, вы можете обратиться к полю `bemjson`
через `this.bemjson`.

Если для многих блоков нужно выполнять инициализацию одинаковым образом, вы можете на своем уровне 
доопределить блок `dev-sandbox` и добавить собственную инициализацию.
 
```js
/**
 * Общая инициализация для всех блоков
 * @param {Object} obj - Объект, экспортируемый из .sandbox.js файла блока
 * @param {Object} container - DOM-элемент контейнера для размещения блоков песочницы
 */
SANDBOX.addInitializer(function(obj, container){
    
    container.innerHTML += BEMHTML.apply(obj.bemjson);
}); 
```

Если доопределить функцию инициализации несколько раз, все указанные действия будут выполнены в порядке, обратном 
порядку доопределения.
