2013-10-28 3 views
1

В Enyo 2.3pre появился новый MVC-механизм, но на нем есть абсолютно все документы.ViewController и Enyo

Вопрос в том, как я могу привязать определенный контроллер к моему представлению?

У меня есть новый вид, основанный на enyo.Control, например. и у меня есть контроллер на основе вида: 'enyo.ViewController',

В моем контроллере у меня есть объект обработчиков с функцией, которая должна обрабатывать событие.

Если я ставлю вид пропеллер в контроллер с именем моей точки зрения, что не работает, так как мой обработчик в контроллере не вызывается

Можете ли вы опубликовать некоторые примеры по этому вопросу?

ответ

5

Итак, enyo.ViewController по умолчанию хочет визуализировать в document.body, и мы используем его для определения вида enyo.Application как «отправной точки» для вашего приложения.

Реализация Enyo не обязательно является «чистым» MVC в том смысле, что вам необязательно иметь правильный контроллер для каждого вида (или enyo.Control), с которым вы имеете дело. У Enyo всегда была своего рода гибридная система просмотра/контроля, запеченная в самих элементах управления.

С учетом сказанного, последние изменения в реализации устраняют пузырьки событий на «контроллер», который владел вашим «представлением», поскольку это привело к множеству ненужных накладных расходов. Фактически, мы удаляем блок «контроллеров» из вида enyo.Application как глобальную ссылку приложения на различные контроллеры, и вместо этого вы поместите их в блок компонентов, как типичный для «традиционной» разработки Enyo.

Итак, текущее мышление заключается в том, что ваше представление будет обрабатывать события по-прежнему, но вы можете привязываться к свойствам различных «контроллеров» и моделей.

Теперь вы можете создать архитектуру MVC, если вы действительно хотите, но система является достаточно гибкой, чтобы поддержать какой-либо из «разделения проблем» методологий (MVC, MVP, MVVM и т.д.)

Мой текущий способ сделать это - создать «контроллер» для выполнения некоторых действий (например, сделать запросы веб-сервисов), а затем собрать модели из возвращаемых данных, добавить их в коллекцию, а затем мои представления, вероятно, будут иметь контроль данных (например, enyo.DataRepeater или enyo.DataList), который автоматически генерирует несколько строк для каждой модели.

Взгляните на этот простой пример: http://github.com/clinuz/college-football, но, пожалуйста, не обновляйте его с помощью переключателей от обычных контроллеров до компонентов. Кроме того, мы удаляем свойство «controller» DataRepeater/List, и оно изменится на «collection».

Дайте мне знать, если вам нужны еще несколько советов. Мы понимаем, что отсутствие документации затрудняет процесс завершения нашей реализации. Пожалуйста, не стесняйтесь!

+0

Большое спасибо, sugardave! Мне удалось заставить его работать, просто добавив весь контроллер к родительскому представлению и установив свойство «view» в этом контроллере. – mico

+0

Я проверил ваш пример, и у меня есть несколько вопросов по этому поводу: 1. Существует свойство «controllerlers», которое ссылается на табло, которая является моделью, а не контроллером. 2. В этом примере нет ViewControllers или Controller. Должен ли я использовать их? – mico

+0

Это действительно будет сводиться к вашим конкретным потребностям. Возможность привязать свойство любого компонента к свойству свойств любого другого компонента отрицает необходимость наличия массива «контроллеров» в этом основном приложении приложения, поэтому упоминание о том, что оно изменится только как компонентный блок в виде приложения. Технически, в этом приложении есть ONE ViewController (основное приложение, как enyo.Application распространяется от enyo.ViewController) – sugardave

2

Вы можете увидеть мой пример проверки структуры enyo MVC. https://github.com/prajnavantha/enyo-internetradio

В принципе у нас есть модель, вид и контроллер. модели: В моем случае это простой enyo.Model. U может иметь enyo.collections и т. Д. Контроллер: я использовал enyo.ModelController. Просмотров: Есть следующие виды:

Приложение не полностью MVC. Поскольку моя логика все еще находится в представлениях. Однако вы можете понять, как установить модель и использовать компоненты.

Смежные вопросы