В одностраничном настольном приложении я должен динамически создавать экземпляр контроллера для окна?Как? - PullRequest
1 голос
/ 23 декабря 2011

Я спрашиваю об этом, потому что я действительно не знаю , где Я должен обрабатывать события моего динамически создаваемого окна.

Когда кто-то нажимает на значок на рабочем столе, окно (еслион не существует) будет динамически создан.Должен ли я создать контроллер при создании окна и подключиться к нему?Если да, то как?

Здесь вы можете прочитать различные подходы, о которых я думал:

  1. Создать контроллер, который будет создавать окно (как его вид), я буду обрабатывать всетам
  2. Создайте только окно и подключите все в моем контроллере панели задач (где и создается окно).В этом случае контроллер панели задач станет очень большим.
  3. Предварительно создайте все контроллеры окон и, в конечном итоге, окна тоже и скройте их (когда страница будет готова).Затем просто покажите / скройте их, чтобы у меня были «статические» ссылки на все контроллеры с getController в приложении

Какой подход мне использовать?

Редактировать 1: Я пытаюсь динамически создавать (и ссылаться на него через другой контроллер) контроллер.Я испытываю трудности, особенно в связи с этим.Любое предложение о том, как это должно быть сделано?

Ответы [ 2 ]

0 голосов
/ 25 декабря 2011

Я решил проблему сам: я преинстанцирую контроллер, как и все контроллеры, вставляя их в массив Application controllers. После этого я создаю представление этого контроллера при вызове метода, а затем просто использую ссылки для доступа к этому представлению.

Метод довольно чистый, а использование ссылок очень приятное. Очевидно, что у контроллера есть метод hasWindow, который проверяет, было ли уже создано представление контроллера.

0 голосов
/ 23 декабря 2011

Я обнаружил, что ExtC MVC непригоден для демонстрации на рабочем столе, так как можно иметь несколько окон (представлений) одного типа, связанных с одним контроллером.Каждое окно имеет свое собственное состояние, и трудно различить представления в контроллере.

...