Короче синтаксис такой
Если модуль не имеет айдишника, то ему как айдишник дается уникальный порядковый номер от 0, если имеет то имеет.
У виджетов то же самое, айдишники виджетов уникальны для каждого модуля. Айдишники модулей уникальны для всего проекта.
оранжевым показаны айдишники модулей
зеленым показаны параметры конструктора модуля ^__^
голубым показаны обсерверы модуля
сиреневым показан айдишник виджета
Айдишники модулям нужны вот зачем
Как нам обратиться к внешнему модулю?
а вот так
как нам обратиться к глобальному модулю mouse который навешан на body??
а вот так
все глобальные модули имеют айдишник Global (с большой буквы для наглядности)
Зачем модулям нужны параметры? Ну вот пример:
первым аргументом принимает класс который будет присваиваться активный пунктам)
и еще кое что, ЭТО - один уровень и одна область видимости.
И немного по поводу обсерверов.
так работает обычный чат, в свойстве input хранит значение виджета input
Добавив туда какой нибудь модуль мы можем повесить на него обсервер и сделать даже так
Крута)?
Так пасоны, еще я разработал спецификацию обсерверов из 0.4
Всего существует 4 вида обсерверов.
1) свойство -> свойство
2) функция -> функция
3) функция -> свойство
4) свойство -> функция
1) свойство -> свойство
изменение свойства href модуля location засунет значение этого свойства в свойство active модуля slider и вызовет перерендеринг.
2) функция -> функция
вызов этой функции модуля menu (то есть если модуль menu или сам или кто-то вызовет эту функцию у себя) вызовет функцию next у слайдера, и первым аргументом передаст в неё то, что вернула функция onchange
3) функция -> свойство
вызов функции onchange модуля menu положит в свойство next слайдера то, что вернула эта функция
4) свойство -> функция
если свойство onchange сменит свое значение, то вызовется функция next и первым аргументом в неё передастся это значение.
Видите как круто)? Модули соединяются друг к другу без каких либо прослоек, так что у вас не выйдет прикрутить неподходящий модуль к неподходящему. придется изворачиваться и это послужит положительным делом. Я чуть позже обьясню в чем положительность)
вы научитесь разрабатывать модули так, чтобы все они имели четкие оговоренные интерфейсы. вы научитесь айдишники давать так, чтобы они везде соответствовали друг другу. (ко коко зависимость - нет блять ты просто не так мня понял) Я обьясню:
вот это вот
аналог этого
просто айдишники ставятся автоматически (да да, по этому запрещено использовать цифры если указываешь айдишник руками)
так вот, айдишник активного пункта меню хранится в свойстве active этого модуля то есть там в коде this.active = "2" например
так вот если мы делаем так
то айдишники раздаются так
и например если выбран пункт с айдишником home то в свойстве this.active = 'home'
так вот, я буду пилить стандартные модули по таким условностям и договоренностям, например если в модуле что-то переключается, то это будет храниться в свойства active, итемы иметь имя виджета item и.т.п.
и буду призывать чтобы и сторонние модули так же писали используя этот стиль.
Так вот, зачем это нужно спросите вы? А вот зачем)
ТАДААААААААААМ, слайдер переключается от пунктов меню)!!!