direct-dev
Version:
Yandex Direct dev tools
56 lines (43 loc) • 2.41 kB
Markdown
# 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);
});
```
Если доопределить функцию инициализации несколько раз, все указанные действия будут выполнены в порядке, обратном
порядку доопределения.