Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Разверните эту рекурсию в цикл) (https://javascript.ru/forum/offtopic/38243-razvernite-ehtu-rekursiyu-v-cikl.html)

megaupload 24.05.2013 19:31

Например виджет title модуля window позволяет цеплять за него и окно будет перетаскиваться. таким виджетов можно создать кучу а использовать только нужные. например можно создать виджет нижней границы ресайза)) и.т.п. норм идея? можно создать несколько кнопок закрыть и.т.п.

в аттрибуте class мы определяем оформление а в аттрибуте ui мы определяем логику

а еще например можно сделать так

ui="window:close, window:title" тогда это будет и кнопка закрытия и место за которое можно перетаскивать)
(не исключены конфликты но это и хорошо, так как логики вообще ничего друг о друге незнают,и это полная свобода)

kobezzza 24.05.2013 19:35

Норм, только мне не нравится, что нет инкапсуляции в шаблоне.
Я считаю, что лучше, когда каждый блок описывается отдельно, а если нужно вызвать блок в другом блоке, то должен быть вызов и передача параметров:

<div ui="window" class="window">
  <h3 ui="window:title" class="header">окно 2</h3>
  <button ui="window:close">закрыть</button>

  <div ui-call="chat" ui-params="{простой JS объект с параметрами}"></div>
</div>

megaupload 24.05.2013 19:44

Цитата:

Сообщение от kobezzza
Норм, только мне не нравится, что нет инкапсуляции в шаблоне.

Разумеется я и на эту тему думал))) я конечно пока логикой занимаюсь но тем не менее не и шаблоны будут)

А вообще я думал сделать что то вроде

<div ui-init="chat"></div>

и он сам все нарисует НО это же уебанство, а как классы расставлять, разметку, контроль где и.т.п.






А вообще приведи пример необходимости использования использования шаблонной разметки?

megaupload 24.05.2013 19:48

В принципе ты сам волен делать что хочешь, так что можно создать 2 модуля один обьявляет шаблоны другой рисует.



Хэштег, по идее гозара, служит персонификатором инстансов модулей) и мы можем это использовать и тут

модуль init залезет и достанет нужный инстанс из модуля template, щас даже ради прикола это сделаю)

kobezzza 24.05.2013 19:52

Цитата:

Сообщение от megaupload (Сообщение 252610)
Разумеется я и на эту тему думал))) я конечно пока логикой занимаюсь но тем не менее не и шаблоны будут)

А вообще я думал сделать что то вроде

<div ui-init="chat"></div>

и он сам все нарисует НО это же уебанство, а как классы расставлять, разметку, контроль где и.т.п.

А вообще приведи пример необходимости использования использования шаблонной разметки?

Ну, у каждого блока есть свой шаблон. Если нужно изменить структуру, то ты создаёшь дочерний блок и наследуешь шаблон с переопределением и дополнением которое тебе нужно. А там где эти блоки используются ты их просто вызываешь и передаёшь входные параметры.

Реализацию наследования в шаблонах можешь подглядеть например у меня: https://github.com/kobezzza/Snakeskin (там в описании есть ссылка на более полную статью с хабра).

Но давать возможность явного определения шаблона при вызове может породить тонну копипасты и превратить код в трудно-поддерживаемое месиво.

Цитата:

Сообщение от megaupload (Сообщение 252610)
В принципе ты сам волен делать что хочешь, так что можно создать 2 модуля один обьявляет шаблоны другой рисует.

Именно это я и пытаюсь до тебя донести :)

Кстати, могу подсказать, как сделать оч просто наследование в CSS. Достаточно использовать паттерн БЭМ и Stylus.

<style>
  .myBlock {
    &__elem { ... }
  }

  .myNewBlock {
    @extend .myBlock;
    &__elem { /** расширение и переопределение и т.д. */ }
  }

</style>

<div class='myBlock'>
    <p class="myBlock__elem"></p>
</div>

<div class='myNewBlock'>
    <strong class="myNewBlock__elem"></strong>
</div>

megaupload 24.05.2013 20:09

Цитата:

Сообщение от kobezzza
Кстати, могу подсказать, как сделать оч просто наследование в CSS. Достаточно использовать паттерн БЭМ и Stylus.

погоди погоди, это то тут при чем)? челвоек сам будет оформлением заниматься тут он полностью свободен, свойство class я вообще не трогаю, я делаю либу виджетов же.

А потом, в качестве пользователя этой либы, начну пилить эти самые виджеты как дополнение к либе))

kobezzza 24.05.2013 20:12

Цитата:

Сообщение от megaupload (Сообщение 252618)
погоди погоди, это то тут при чем)?

На будущее :)

megaupload 24.05.2013 20:33

Ну а вообще идея такая что при инициализации модули просто пихаются в одноименный массив

ui.window[0] и.т.п.

а те которые имеют айдишники пихаются под айдишниками

ui="window#myChat"

в скрипте будет доступен как

ui.window.myChat

норм?

megaupload 24.05.2013 20:38

kobezzza,
чувак, вот ты пилишь шаблоны но почему ты не используешь XML синатксис?

Я вот например показал идею как можно пилить шаблоны тупо в HTML как модули.... Мне кажется дикостью что-то для этого придумывать более.

kobezzza 24.05.2013 20:50

Цитата:

Сообщение от megaupload (Сообщение 252622)
норм?

Да, только нужно ещё для каждого блока уникальный ИД генерить, чтобы не было коллапса, когда на странице окажется 2 одинаковых модуля.

Цитата:

Сообщение от megaupload (Сообщение 252622)
чувак, вот ты пилишь шаблоны но почему ты не используешь XML синатксис?

Гм, наверно мне так привычнее и удобнее. К тому же я часто пишу шаблоны не только для XML подобных структур и мне как то удобнее использовать более нейтральный синтаксис и не возникнет проблем, если вдруг моя директива-тег будет использовать в требуемом подмножестве xml (а XML неймспейсы как в XSLT меня бесят :)). Кароч мне так удобней:)


Часовой пояс GMT +3, время: 02:15.