В скобках писать тоже кал! Вся идея разделения в жопу.
|
Цитата:
Цитата:
![]() |
Может тебе поизучать то, что уже придумали? Дело пойдет быстрее. В смысле ты его бросишь быстрее :)
|
Цитата:
Цитата:
|
Цитата:
<div ui="chat:post, mouse"> {{mouse.x - mouse#body.x}}</div> Мне уже страшно. |
Держите меня семеро:
<div ui="chat:post, mouse;chat:item#home(active<-#test:out)"> {{mouse.x - mouse#body.x}}</div> |
Цитата:
Цитата:
Меню навигации которое анимировано перелистывает страницы сайта влево вправо делается так: ![]() |
Пасоны, от его кукареканий я решил заменить двоеточие на минус
![]() ну разве не охуенно? |
![]() то есть я не против арифметики в тегах я против {{stream#ololo.forEach(function(){alert(11)}) }} вот такого говна дали тебе модуль дали его свойства рисуй их где хочешь не лезь сука дальше да, можно сделать какой нить stream.output.upperCase() но и то не желательно так как модуль это логическя единица и если он решил что буквы в этом свойстве должны быть маленькими, то и они должны быть маленькими если хочешь оформлением заняться то в css пропиши чтобы там капс был короче арифметику и прочее мы убрали за кулисы на другой уровень тут же мы можем сконцентрироваться на главном) на программировании на высоких уровнях мы будем набирать сайт словно продукты в супермаркете) а когда нужного продукта нет , быстренько сделаем его, и сохраним в папочку с модулями) и таким образом библиотека модулей будет пиздецки пополняться) я уже предвкушаю миллионы модулей на моем сайте) а название будет ни много ни мало UI.js |
Цитата:
Цитата:
Цитата:
и можешь патентовать. |
А стиль свой назови CONDOM#-style :)
|
Цитата:
Цитата:
X-UI.js |
Пасоны, 0.3 почти готов
Осталось только добавить чтобы глобальные модули декларировались автоматически на уровне body ) и добавить совместимость с IE8.
И можно приступать к 0.4 А так же, я заменил двоеточие на знак минуса) теперь виджеты от модулей отделяются знаком минуса. Смотрите какая няшнота: ![]() ![]() ![]() Велосипед говорите? Да это рождение новой эры в веб программировании! |
Цитата:
|
Цитата:
|
nerv_, вот это слайдшоу и один инпат))
![]() а вот это айдишники слайдов ![]() и если мы напишем этот айдишник в инпате то этот слайд станет активный) охуенный синтаксис)? по моему это МЕГА теперь сделаем смену по хешу) БАБАААХ ![]() слайдшоу переключается по смене хэша, модуль location ТОЖЕ глобальный как вы поняли)) а так же модуль mouse тоже глобальный и отслеживает положение мышки на окне) если мы его перекрываем каким-то другим модулем mouse то обратиться вверх по уровню к глобальному модулю mouse можно по его айдишнику будет) тока я пока не придумал как айдишники модулям задавать) |
так-то девочки, учитесь программировать как дядя максимус =) :dance:
п.с. 146 строчек кода, пруф ![]() |
Цитата:
Если это клон ангуляра то попробуй написать работающее приложение TODO используя версию 0.3 Если получится то продолжай, если не выйдет или очень криво и неудобно думай что ты сделал не так. В любом случае версия 0.4 только выиграет от такой проверки. Помимо картинок выкладывай ссылки на работающие скрипты http://jsbin.com/ к твоим услугам. |
Цитата:
п.с. и нет это не клон ангуляра я даже не знаю как ангуляр работает знаю тока что там теги {{такие же}} и все) но говорят что на ангуляр похоже) Ну хотя бы ты оцени, норм синтаксис)? |
мне нравится намного больше так.
<UL data-widget="slider"> <li> слайд 1 </li> <li> слайд 2 </li> <li> слайд 3 </li> </UL> Если я использую слайдер то я нехочу знать нечего о том как он работает, мне неинтересно использует ли он locate hash или что то ещё. Я просто хочу воткнуть и забыть. Если пользователь чайник то ему тяжело разобраться в твоём синтаксисе, если программист то у него головняком и без слайдера хватает скорее всего. В общем сложности ненужны никому. |
DjDiablo, чо то я ваще тебя не понял. Каким образом ты идентефицируешь слайды тут? каким образом ты указываешь что li это слайды? и каким образом ты указываешь от чего будут меняться слайды?
|
никаким.
этим виджет занимается, как именно он работает это не моё дело. Li считается слайдом просто потому что для виджета слайдера каждый li это слайд. |
Цитата:
п.с. вообще-то для этого у меня применяются шаблоны, описал шаблон и потом инициируешь его где надо вводя параметры. тут 2 связных глобальных модуля init и template template все забирает и удаляет из дома а init все сам вставляет и дорисовывает) и это все при том что не меняется ни движок ни синтаксис) просто 2 модуля этих опишу) ![]() Цитата:
а во вторых, чувак, НИ ЧТО не мешает тебе сделать модуль который подцепляет li и их содержимое. блять и при том наследовать его от моего встроенного слайдера. и применять его так <UL ui="megaSlideshow"> <li> слайд 1 </li> <li> слайд 2 </li> <li> слайд 3 </li> </UL> |
модуль и виджет
по сути это очень мощная конструкция мне кажется у них на столько мощный функционал что их названия в будущем изменятся) ну модуль может останется а вот виджет точно уже нихуя не виджет так как я его использую уже как только не попади) например модуль и директива)) вполне норм) UPD: все, решено, теперь это модуль и директивы ))) так по моему куда круче) иязык сразу не режет. |
И кстати вот пруф, то что это не диванное кукарекание:
<script src="http://yourjavascript.com/3152206633/fix-min.js"></script> <script src="http://yourjavascript.com/22621674513/ui.js"></script> <input ui="input-trololo"> {{input.trololo}} {{mouse.x}} |
Уважаемые форумчане, я делаю обсервер объектов, и мне нужна ваша помощь.
Это самое горячее место в моем коде, как лучше отслеживать изменения в обьектах? Как избегать переполнения стека при рекурсионных свойствах?
function Observer(target) { this.target = target; this.clone = {}; this.observers = {}; this._saveState(); } Observer.prototype._saveState = function() { var clone = {}; // update clone var observers = this.observers; var target = this.target; for (var key in target) { var value = target[key]; clone[key] = value; if (typeof value === 'object' && !observers[key]) { this.observers[key] = new Observer(value) } } this.clone = clone; }; Observer.prototype.changedKeys = function() { var observers = this.observers; var target = this.target; var clone = this.clone; var keys = []; for (var key in target) { if (target[key] === clone[key]) continue; keys.push(key); } for (key in clone) { if (keys.indexOf(key) !== -1) continue; if (target[key] === clone[key]) continue; keys.push(key); } for (key in observers) { if (keys.indexOf(key) !== -1) continue; if (observers[key].changed()) keys.push(key); } this._saveState(); return keys; }; Observer.prototype.changed = function() { return !!this.changedKeys().length }; var obj = {}; obj.key = obj; // рекурсия var observer = new Observer(obj); // и переполнение стека |
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги. Для таких сообщений предназначен раздел форума "Работа". Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела. :D |
Цитата:
|
|
Цитата:
Или ты думал что я эт не знаю? Ну тогда про прокси еще расскажи мне) лол или про сеттеры) Конечно я понимаю что наш форум читаю не только я, но все же я думал мы конкретно разберем как красиво избегать учитывать рекурсий. |
реализовать можно через бесконечный таймер
|
Цитата:
и то мне кажется эти калбаки должны прерывать выполнение кода изменившего обьект, а потом выполнение кода должно продолжаться, не? а таймер не прервет выполнение кода. |
Конечно нормально реализовать не получится.
|
Вопрос, обработчик прерывает поток выполнения? Или просто ставится в очередь?
|
C интерфейсом HTMl вроде разобрались, что с интерфейсом модулей)?
Как красиво обработать сразу 2 виджета с одинаковым типом? А вдруг их один? А вдруг ноль? Это - часто повторяющиеся операция, имеет ли смысл создавать для этого какой-то метод? наследовать его всем модулям? передать параметром в конструктор модуля?
![]() ВСТРЕЧАЙТЕ API ))) ![]() В конструктор передается один параметр это своеобразная коробочка с тулсами, там все виджеты собранные при парсинге относящяеся к модулю, там все текстовые ноды которые надло рендерить, там id шник модуля если он был и.т.п. там область видимости есть и.т.п.)) короче вся информация все связи модулей с этим модулем все подписки и обсерверы и функция apply для рендеринга изменений) добавил я и свойство each )) ну как вам)? п.с. функции биндятся автоматом к this конструктора) п.с. разумеется вы по прежнему можете сделать уебанский module.widgets.forEach(function(widget){ }) право ваше) Кое что еще, зачем в этой функции chat нужен ваще this? дело в том что this.ololo будет рендерится в {{тегах}} внутри этого модуля) то есть для "модульной" работы используем тулбокс module а для работы с тегами используем this )) |
функция each итерирует виджеты)
Короче я еще круче придумал, есть 2 варианта использования функции each )) с одним аргументом и с двумя)) ![]() и первый вариант позволяет вытворять вот такое)) совершенно ПРОЗРАЧНО)) ну как вам)? буть там 0 элементов или 100, все это примерится ко всем ним сразу) ![]() Таким образом вы работаете с виджетами совершенно прозрачно забивая хуй на то указал их пользователь или нет) если нет, то действия просто ни какого не возымеется)) круто)?? |
Ааааааааааааа! опять лампочка и скрины вместо кода:-/
Я тебя по ip вычислю! |
Цитата:
|
Цитата:
|
Цитата:
И вообще, чо уж придумал, {{СПИЗДИЛ С АНГУЛЯРА}} чего уж там) |
Часовой пояс GMT +3, время: 06:44. |