2010-09-08 2 views
2

Я сделал SproutCore tutorial и имею представление о том, что может предложить инфраструктура. Кажется удивительным, хотя я не уверен, что я чувствую о структуре, которая генерирует HTML и CSS за кулисами. Дело в том, что SproutCore, который я считаю наиболее привлекательным, - это привязки - уменьшение количества кода клея, необходимого для хранения всего в синхронизации, может быть только хорошим.Реализация привязок SproutCore в веб-приложении JavaScript

Мне интересно узнать, как реализованы привязки SproutCore. Я хотел бы иметь возможность использовать привязки без необходимости использования такой структуры, как SproutCore.

Как можно написать код JavaScript, необходимый для привязки данных и их представлений, чтобы представления мгновенно отражали изменения данных без какого-либо кода клейма?

+0

Если вы не возражаете, я спрашиваю, почему вы не хотите, чтобы HTML и CSS были созданы для вас? –

+0

У некоторых из нас все еще есть воспоминания о хороших днях Frontpage и Dreamweaver. Возможно, с тех пор ситуация улучшилась, но я все равно напишу свой собственный проклятый HTML/CSS/Javascript tyvm. – MooGoo

+2

Ну с SC у вас на самом деле довольно много контроля. Вы можете фактически управлять HTML/CSS, если хотите, вместо того, чтобы полагаться на SC, чтобы сделать это за вас. Однако SC хорошо справляется с этим, и в большинстве случаев это огромная экономия времени. Тем не менее, SC не является подходящим инструментом для каждой работы, поэтому есть еще случаи, когда вам нужно просто написать прямой HTML с небольшим количеством JS, смешанным. –

ответ

6

С помощью SproutCore с использованием методов get и set, предоставляемых смешением SC.Observable, обеспечивается наблюдение за ключом. Когда вы создаете привязку, она в основном устанавливает наблюдателя, который срабатывает, когда метод set установлен на значение, которое он наблюдает, а затем распространяет изменение. Когда привязка привязана к представлению на вашей странице, привязка вызывает необходимый код просмотра для внесения изменений в DOM. Вы можете взглянуть на документы и источник API для SC.Observable и SC.Binding по адресу http://docs.sproutcore.com.

Поскольку SproutCore разделен на несколько «фреймворков», вы можете просто взять фреймворк, в котором живет этот основной материал, называемый «runtime», и использовать его в своем проекте без всякого хранилища данных и просмотра слоев, я хочу. Вы могли бы также попытаться воспроизвести эту функциональность самостоятельно, но мне интересно, если вам в итоге придется воспроизвести большую часть того, что они создали.

+0

Потрясающий ответ! Спасибо, бруз. :) – davidchambers