# Como injetar um serviço no Discourse?

**URL:** <https://meta.discourse.org/t/how-to-inject-a-service-in-discourse/217533>\
**Category:** Development\
**Created:** [8 Fevereiro , 2022 17:00 UTC](https://meta.discourse.org/t/how-to-inject-a-service-in-discourse/217533 "2022-02-08T17:00:11Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)\
**Post date:** [8 Fevereiro , 2022 17:56 UTC](https://meta.discourse.org/t/how-to-inject-a-service-in-discourse/217533/3 "2022-02-08T17:56:03Z")

</div>

O problema aqui é que o ‘connector’ não é um EmberObject, e por isso você não pode injetar coisas nele. Em vez disso, você precisará criar um Ember Component e injetá-lo lá.

Seu template ‘connector’ ficaria então parecido com

```plaintext
{{my-component-name}}

```

Aqui está um exemplo de como isso é feito no plugin whos-online:

Temos um serviço no core:

> <https://github.com/discourse/discourse/blob/5a93ce421da4e52b9d649cf609cd7d79d21a1683/app/assets/javascripts/discourse/app/services/presence.js#L246>

Um template connector no plugin

> <https://github.com/discourse/discourse-whos-online/blob/db7af7bce84240c47b4b51242451a5bd1c56949c/assets/javascripts/discourse/templates/connectors/discovery-list-container-top/online_users_widget.hbs#L1>

A definição do componente:  
[https://github.com/discourse/discourse-whos-online/blob/main/assets/javascripts/discourse/components/whos-online.js#L6-L7](https://github.com/discourse/discourse-whos-online/blob/main/assets/javascripts/discourse/components/whos-online.js#L6-L7)

(ou você pode usar `export default Component.extend({ whosOnline: service() })` se preferir)

E o template do componente:  
[https://github.com/discourse/discourse-whos-online/blob/main/assets/javascripts/discourse/templates/components/whos-online.hbs](https://github.com/discourse/discourse-whos-online/blob/main/assets/javascripts/discourse/templates/components/whos-online.hbs)

---

_[View the full topic](https://meta.discourse.org/t/how-to-inject-a-service-in-discourse/217533)._
