Состояние JavaScript для обработки последовательности функций (MVC, зависимые функции) - PullRequest
2 голосов
/ 09 мая 2011

У меня есть «приложение для интерактивных карт», написанное на JavaScript.

Состояние, помимо других свойств, содержит массив current:

state = {
    current: ["USA", "Norway", "Japan"],
    [...]
}

При добавлении страны в этот список (или изменении состояния в целом) должна срабатывать последовательность функций - например:

function add(country){
     state.current.push(country);
}

=> updateYmax() then updateScales() then render()

В этом случае render () зависит от updateScales (), что, в свою очередь, зависит от updateYmax ().

Что такое лучшие практики - в JavaScript - чтобы все было просто? Можете ли вы привести пример использования Backbone.js или другой архитектуры MVC для упрощения обработки состояний и вызова функций в правильном порядке?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

Пусть список вашей страны будет Backbone.Collection и прослушивайте события из него (обычно добавляйте, удаляйте, обновляйте). Как объяснил alexanderb, цепочка ваших событий вплоть до вызова рендера.

0 голосов
/ 09 мая 2011

Для этого вы можете использовать событие backbone.js.Как только состояние меняется, вы запускаете событие StateChanged.Различные подписчики используют это и делают это частью логики (обновление, рендеринг и т. Д.)

http://documentcloud.github.com/backbone/#Events-bind

...