Реализация привязок типа SproutCore в веб-приложении JavaScript - PullRequest
2 голосов
/ 08 сентября 2010

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

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

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

1 Ответ

6 голосов
/ 09 сентября 2010

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

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

...