Angular 12 - как передать объект в службу

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

Как передать этот объект в мою службу. Есть ли способ внедрить этот объект с помощью специального InjectionToken?

Спасибо за любую помощь!

- закомментированный код, Пример stackblitzвызывающий в сервисе

1 ответ

Решение

Вам нужно только изменить это в своем компоненте:

        doSomething() {
    this.service.doSomethingWithOrder(this.order);
  }

и это к вашим услугам:

      doSomethingWithOrder(order: {
    id: number;
    name: string;
  }) {
    console.log(order.name);
    alert('need access to order here');
  }

но будь осторожен! Поскольку это объект, вы передаете его как ссылку. Если вы вносите изменения в службу, вы изменяете тот же объект компонента.

Другие вопросы по тегам