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');
}
но будь осторожен! Поскольку это объект, вы передаете его как ссылку. Если вы вносите изменения в службу, вы изменяете тот же объект компонента.