Чтобы добавлять сообщения и комментарии, .

@kaineer:
kaineer

Сделал себе дебаунсинг для событий в бэкбоновских вьюхах.
Конфигурируемость, все дела.
gist.github.com

@DXist:
DXist

Отличные советы для изучающих Backbone.js — ricostacruz.com

@Kerrigan:
Kerrigan

Не забывать, что если render после fetch'а коллекции, то его надо засунуть в success фетча

@Kerrigan:
Kerrigan

Заставил рендериться элементы через шаблон underscore.js только в отладчике фуррифокса. WTF?!

@grouzen:
grouzen

как добавить модель, чтобы она отобразилась во вьхе, при этом не создавая ее на сервере?

@grouzen:
grouzen

ребята, дайте уже какие то howto по третьетегу. Еще например объясните по контроллерам в бекбоне, я не могу понять, они из коробки есть или это отдельный дополнительный жс файл?

@Yurtaev:
Yurtaev

У backbone.js закончились задачи? Хм, ок, ща создадим и попытаемся сами же и закрыть.

P.S может кто сталкивался с кастомными айдишниками для моделей? Проблема в том что idAttribute позволяет задать своё поле в качестве идентификатора, но не позволяет указать вложенное поле, например сериализованный документ из монги имеет айдишник _id.$oid На проекте по быстрому добавил в лоб его, но не хорошо иметь патчиный вариант у себя. Меня только смущает что я один такой…

@vessi:
vessi

тут надыбал ссылочку на русскоязычную доку по backbone.js
если кому-то сильно трудно читать официальные: backbonejs.ru
она достаточно свежая. батя грит — малаца, хорошо зделали.

@demiazz:
demiazz

Небезызвестная компания Throughtbot, которая славится одной из лучших Ruby On Rails команд на мировом уровне, предлагает свою книгу Backbone.JS on Rails. Книга конечно платная (а вы что хотели? 37signals свои тоже не в open-source отдают). Судя по содержанию — книга вполне объемная и освещающая разработку и организацию Backbone.js приложения вместе с рельсо-приложением, а также аспекты разработки оных. Короче, вот ссылка: workshops.thoughtbot.com

@demiazz:
demiazz

Ну вот и добрался таки до привязки роутеров. Как же приятна Backbone.JS. Мне таки понравилась и столько нервов все таки в конечном итоге сэкономил. Просто прелесть ))) даже в 9 IE заработала. Предыдущие версии пока не тестил, как доберусь — надо будет сразу потестить.

@demiazz:
demiazz

Кстати. Давно я что-то о Backbone.js не писал. Сегодня как раз начал приступать к так сказать ядру приложения.

Что могу сказать. Он великолепен. Да. Полтора десятка моделей, и все по одной строке, и строки по 4 коллекции к ним, и все интегрировано с REST Framework на Django. Все быстро подхватывается и летает. В общем геммороя снимает вагон и маленькую тележку. Даже при хорошей разработке, с минимумом кода на чистом JS — все равно это лаконичнее и проще.

Чего мне пока не хватает. Увы, но я так и не нашел способа, как заставить вьюху реагировать на изменение коллекции. Не на change:attr, а на fetch и reset. Хотя тут есть и несколько довольно ясные ограничения. fetch — по сути простой AJAX запрос, и асинхроннен, но можно было бы event крутить. Почему мне такой подход не удобен: причина проста. Чтобы сделать реакцию на fetch, надо в fetch передавать объект с полем success, которое будет вызывать render вьюхи. Но у нас то коллекция во вьюху "вложена", а не наоборот. Вполне возможно что плохо искал, но задача весьма тривиальна, и говорить "плохое проектирование" тут не катит. Банальное обновление селектов, которые должны только получать те или иные коллекции с сервера и все. Не больше. Ну да ладно. Небольшой метод во вьюхе все решает, как и собственные классы handlebar'ов, от которых потом наследоваться легко, просто и приятно.

Что еще не хватило. Тут вполне может быть и где-то криво спроектировано, но все же. Что имею. Большая форма. В ней много полей. Многие поля строятся по справочникам, которые по REST тянутся с сервера. Справочники рендерятся по разному (кто в select, кто список checkbox, кто еще как-то). Делать вьюху, которая бы рулила двумя десятками коллекций, и отвечала за рендеринг каждой — явно не то. Сделал несколько маленьких вьюх. И одна большая, которая отвечает за всю форму целиком, и рулит этими мини-вьюхами. Вроде получше, чем отброшенный вариант. Что смутило — по сути эта вьюха выступает еще и контроллером. То есть наступило смешение паттерна. Хотя и задача вполне такая специфичная. Не каждый день такой сложности формы с таким количеством обмена данными.

Собственно, смутило вот это нагромождение, и логики отображения и управления другими подчиненными вьюхами. Но это скорее специфика задачи. Но опять таки. Если бы не backbone — результат я уже прекрасно знаю, ибо проходил, и до этого реализовывал тот же интерфейс без REST и Backbone. (Точнее с кусочком REST).

В остальном же, средства backbone и coffeescript позволили так лаконично, красиво и классно организовать код даже вот этой громадины, что нарадоваться не могу.

Сейчас представляю, что было бы, если бы взяли SproutCore, как изначально подумывали. Я бы на этом JS и повесился бы к чертям. А backbone со своей легкостью и простотой выдержал испытание извращением даже такой сложности. И сказать, что выдержал достойно — ничего не сказать. Он прошел через Триумфальную арку.

Еще один пост восхищения и позитива за сегодня. ))) Только больно сумбурный и неясный, но вот так вот получилось.

@vessi:
vessi

немного пощупал backbone.js. идея переложить интерфейс на клиента мне нравится. но в плане стыковки с ruby я вижу больше смысла в sinatra, а не в rails. prove me wrong.

@demiazz:
demiazz

Написал то всего ничего, а оно мне уже в 600> строк JS компилится О_О опять JS прилага в несколько тысяч строк выйдет >_< убейте меня... благо на этот раз у меня есть backbone, и хорошие инструменты...

@demiazz:
demiazz

Если кто думает юзать backbone с расширением для relation, то будьте аккуратны. Логика fetch для коллекций там изменена. Банальный пример. К примеру у нас есть просто модель, без связей. мы по ней создаем коллекцию. Эта коллекция по fetch не будет получать все или лимитированное количество записей. Только одну. Видимо это изменение для прикручивания именно relations логики. После того, как я убрал сие ограничение — все заработало. ) все объекты парсятся. Возможно такое ограничение может быть связано с плагином backbone_tastypie, но вроде маловероятно. ) в общем пользуйтесь аккуратно )