Подтвердить что ты не робот

Ember несколько экземпляров контроллеров

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

мнение дизайнеров Ember, используемое маршрутизатором, заключается в том, что для данного BaseName (например, "Приложение", "CustomerEntry", "Мои элементы" ) должен быть BaseNameView и BaseNameController. - Эмбер-гид

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

Одним из решений, которое я вижу, является создание контроллеров (и данных модели) вручную и передача их в представления. Но в этом случае я бы хотел, чтобы Ember автоматически не создавал контроллеры для меня. Иными словами, почему Ember создает контроллеры в качестве синглтонов во время запуска приложения.

4b9b3361

Ответ 1

Я думаю, что существует много вариантов использования, когда тип View не имеет соответствующего типа контроллера. Особенно, когда тип представления больше похож на виджет пользовательского интерфейса, чем на полнофункциональную функцию приложения. Многие представления могут использовать один и тот же контроллер. Взгляните на этот шаблон applicationView:

<h1>Here are two files, compare them</h1>
{{view App.MyFileView contentBinding="leftFileContent"}}
{{view App.MyFileView contentBinding="rightFileContent"}}

Это создает два экземпляра моего класса вида и связывает их свойства содержимого с двумя разными свойствами на applicationController. Свойство controller для обоих этих представлений задается экземпляром singleton applicationController.

Одной из возможных причин, по которым контроллеры являются синглтонами, может быть то, что они могут быть адресованы в глобальном пространстве имен с помощью App.router.myController.