@vrazbros

Что такое Активная модель MVC?

C MVC в принципе знаком давно, разделение приложение на три компонента, модель, взаимодействие с пользователем и представление, действия пользователя отслеживает контролер, он дергает модель и передает данные в представление, Но о боги недавно узнал (век живи век учись) что это пассивная модель MVC, а есть еще активная!

Можно живой пример в студию ? Где вы это применяли кроме википедии ?
  • Вопрос задан
  • 2659 просмотров
Пригласить эксперта
Ответы на вопрос 1
27cm
@27cm
TODO: Написать статус
Активные модели возможны на фронтенде, т. е. когда меняется модель сразу же меняется ее представление. В php активные модели в принципе не возможны.

Действия пользователя отслеживает контролер, он дергает модель и передает данные в представление

Ключевое отличие. В PHP контроллер динамически не отслеживает действия пользователя, т. е. пришёл запрос - создали контроллер, создали модель, создали представление - вернули ответ. Новый запрос - по новой создаются контроллер, модель и представление.

А-ля MVVM?

Не обязательно. Модель может быть как активной, так и пассивной в любом из вариантов: MVC / MVP / MVVM. Если модель оповещает о своём изменении (см. пунктирные стрелочки на схемах), и в результате изменяются представления для этой модели, то это активная модель.

Можно живой пример в студию ? Где вы это применяли кроме википедии ?

1. Возьмите TodoMVC: todomvc.com/examples/backbone/#/
2. Откройте консоль браузера (F12).
3. Создадим новую модель. Введите в консоли:
var todo = new app.Todo({title: 'Увидеть активную модель'});

4. Добавим созданную модель в коллекцию:
app.todos.add(todo);

dc90a184da024d908e57cc9c0d691d53.png
5. А теперь изменим модель и обратим внимание, как изменится её представление:
todo.set('completed', true);

1f380234efef4fb0a3bd7c785af03885.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы