Ошибка, которую вы видите от реализации Cairngorm шаблона Singleton. Это мешает вам создать второй экземпляр ServiceLocator, потому что фреймворк требует, чтобы был только один. При загрузке второго экземпляра вашего модуля ваш код также пытается создать второй экземпляр ServiceLocator, когда он должен использовать getInstance () (или вообще не получать экземпляр).
Объявив твой тег Services в Main.mxml, ты создал свой единственный экземпляр ServiceLocator, и он не может быть объявлен или обновлен где-либо еще. Если Main.mxml является частью модуля, который вы пытаетесь создать несколько раз, это ваша проблема. Если нет, я не могу сказать, где в вашем коде проблема основана на ограниченном примере выше, но она должна быть где-то в модуле.
В ответ на комментарий:
Нет проблем. Вы можете легко решить свою проблему, объявив свой Сервис в ActionScript вместо MXML. Объявляя тег в MXML, вы всегда создаете экземпляр соответствующего класса AS, тогда как вместо этого вы хотите извлечь единственный экземпляр синглтона. Для этого включите в свой модуль MXML следующий код AS:
var service:Service = Service(ServiceLocator.getInstance());
По сути это эквивалентно тому, что вы пытаетесь сделать с тегом MXML, за исключением того, что не создается новый экземпляр службы.
Однако вам все еще нужно где-то создать экземпляр Службы. Для этого поместите тег Service MXML внутри основного MXML приложения, которое загружает модули.