Javascript MVC - отдельная логика - PullRequest
4 голосов
/ 02 апреля 2012

В настоящее время я использую свою собственную настройку для инфраструктуры MVC в Javascript, но я немного озадачен тем фактом, куда мне следует помещать свои обработчики событий HTML.

Как событие клика / мыши / фокуса и тому подобное, допустимо ли встраивать эту логику событий в контроллер.

Прямо сейчас у меня это так:

  • Некоторые-module.model.js
  • Some-module.view.js (где я присоединяю свои пользовательские события, такие как события мыши, фокус и т. Д.)
  • Some-module.view.tpl (здесь HTML-код размещается между тегами script, механизм мини-шаблонов)
  • Некоторые-module.controller.js

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

Ответы [ 3 ]

2 голосов
/ 02 апреля 2012

Размещение обработчиков событий внутри класса контроллера не является плохой практикой. Фактически, библиотека JavaScriptMVC использует класс Controller для организации всех обработчиков событий (хотя это не единственная цель класса Controller).

Размещение обработчиков событий внутри класса View также не является плохой практикой, так как это используется Backbone.js для организации всех обработчиков событий, связанных с конкретным элементом DOM.

Существует множество шаблонов проектирования внешнего интерфейса MVC, и нет ни одного шаблона, который бы идеально подходил для любой ситуации.

0 голосов
/ 03 апреля 2012

Хорошо, спасибо всем!

Что я собираюсь сделать:

/ контроллеры / -> some-module.js

/ модели / -> some-module.js (содержит данные, отслеживает состояния, получает данные)

/ просмотров / -> some-module.js (прикрепление событий DOM, манипуляций с DOM извлечет файл TPL шаблона и будет использовать его)

/ шаблоны / -> some-module.tpl (фактическое представление в скрипт-тегах, аналогично усам или Jquery Templates, позволяет мне использовать переменные-теги в шаблоне)

Это сделает мое приложение организованным и модульным.

Я мог бы рассмотреть обработку событий DOM внутри контроллера, но мне также нужно место для выполнения некоторых манипуляций с DOM (изменение имен классов, изменение значений innerHTML и т. Д.), И я думаю, что контроллер не является правильным способом сделать это.

0 голосов
/ 02 апреля 2012

Сохраните JavaScript и все манипуляции с DOM в файле js.

Разделение интересов

Кстати: Controller в MVC является своего рода keyword, вы можете изменить имя файла js на имя без контроллера внутри него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...