Как настроить Синглет с инициализаторами ember-cli?


С тем, как ember-cli предоставляет инжекторы для DI, у меня есть что-то вроде этого в моем файле app/initializers/drupal-csrf-token.js:

export default {
  name: 'drupal-csrf-token',

  initialize: function(container, app) {
    app.inject('route', 'drupalCsrfToken', 'service:drupalCsrfToken');
    app.inject('controller', 'drupalCsrfToken', 'service:drupalCsrfToken');
  }
};

Обычно, когда вы хотите синглет с DI, вы делаете что-то вроде этого:

container.register('store:main', Store, { singleton: true });

Однако я не могу понять, куда прикрепить флаг синглтона на инициализаторе, чтобы он застрял.

Возможно ли это вообще?

1 4

1 ответ:

Вы можете сделать это внутри вашего метода инициализации, я полагаю:

  app.register('service:drupalCsrfToken', 'drupal-csrf-token', { singleton: true });

Я думаю, что синглтон по умолчанию принимает значение true.