Войти с помощью github
Форум /

Вопрос №1

modules.define('page',
  ['i-bem-dom'],
  function (provide, bemDom) {
    provide(bemDom.declBlock(this.name, {
      onSetMod: {
        'js': {
          'inited': function () {
            // this.findChildBlock(FormLogin)._events().on('login:success', this._onLoginSuccess)
          }
        }
      }
  }))
})

// modules.require('page', function () {})

инициализация происходит только если раскомментировать последнюю строчку. Это нормально или я что-то не так сделал?

Вопрос №2.

Блок page я планирую использовать как глобального диспетчера. У page есть разные view (со своими наборами слушателей). По сути будет 3 view. (login, user, admin),

При переходе из view в другой view нужно менять вешать/убирать слушателей. Как это реализовать?

Пока начал эксперементировать с модификаторами. Но такой код срабатывает только при инициализации.

modules.define('page',
  ['form-login'],
  function (provide, FormLogin, Page) {
    Page.declMod({ modName: 'view', modVal: 'login' }, {
      onSetMod: {
        'js': {
          'inited': function () {
            console.log('login view')
            // console.log(this.findChildBlock(FormLogin))
            this.findChildBlock(FormLogin)._events().on('login:success', this._onLoginSuccess)
          }
        }
      },

      _onLoginSuccess: function (e, data) {
        console.log(data)
      }
    })

    provide(Page)
  }
)

Вопрос №3

Какая разница между

provide(bemDom.declBlock())

и

bemDom.declBlock()
provide(bemDom)