# Is there services concept in emberjs like angularjs

**URL:** <https://discuss.emberjs.com/t/is-there-services-concept-in-emberjs-like-angularjs/8298>\
**Category:** Uncategorized\
**Created:** [June 30, 2015, 9:10pm UTC](https://discuss.emberjs.com/t/is-there-services-concept-in-emberjs-like-angularjs/8298 "2015-06-30T21:10:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Muazz\_Zafar](https://avatars.discourse-cdn.com/v4/letter/m/dec6dc/32.png) [@Muazz\_Zafar](https://discuss.emberjs.com/u/Muazz_Zafar)\
**Post date:** [June 30, 2015, 9:10pm UTC](https://discuss.emberjs.com/t/is-there-services-concept-in-emberjs-like-angularjs/8298/1 "2015-06-30T21:10:59Z")

</div>

plz briefly tell me the concept of services like angularjs…

---

<div class="post-metadata">

**Author:** ![brian\_ally](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/brian_ally/32/10571_2.png) [@brian\_ally](https://discuss.emberjs.com/u/brian_ally)\
**Post date:** [July 3, 2015, 7:29pm UTC](https://discuss.emberjs.com/t/is-there-services-concept-in-emberjs-like-angularjs/8298/2 "2015-07-03T19:29:03Z")

</div>

```
Yes, you can use services. Here's an example of a very simple service that passes some data to the server. I'm using Ember-Data but for some things i need to bypass that. This is also using Ember-CLI.

// app/services/token.js
import Ember from 'ember';
import {request} from 'ic-ajax';
import ENV from "../config/environment";

export default Ember.Service.extend({

  fetch: function(data) {
    return request({
      url : ENV.tokenEndpoint,
      type : "POST",
      dataType : "json",
      data : data,
      headers : {"X-FooBar": 'foo'}
    });
  }
});

```

You need to now tell Ember that the service exists, and to which parts of the app it should be exposed.

```
// app/intializers/token.js
export function initialize(container, application) {
  application.inject('route:login', 'tokenService', 'service:token');
}

export default {
  name: 'tokenService',
  initialize: initialize
};

```

Now refer to the service as a member of the route.

```
// app/routes/login.js
this.tokenService.fetch(exchangeData).then(function(response) {...});

```

---

<div class="post-metadata">

**Author:** ![Samsinite](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/samsinite/32/9575_2.png) [@Samsinite](https://discuss.emberjs.com/u/Samsinite)\
**Post date:** [July 4, 2015, 4:35am UTC](https://discuss.emberjs.com/t/is-there-services-concept-in-emberjs-like-angularjs/8298/3 "2015-07-04T04:35:07Z")

</div>

There is an easier way to [inject services now](http://emberjs.com/api/classes/Ember.inject.html#method_service) (introduced two or three minor revisions ago):

for example, into a controller:

```
export default Ember.Controller.extend({
  fooService: Ember.inject.service('foo') // looks up the service from app/services/foo.js
});

```

---

<div class="post-metadata">

**Author:** ![brian\_ally](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/brian_ally/32/10571_2.png) [@brian\_ally](https://discuss.emberjs.com/u/brian_ally)\
**Post date:** [July 5, 2015, 10:32pm UTC](https://discuss.emberjs.com/t/is-there-services-concept-in-emberjs-like-angularjs/8298/4 "2015-07-05T22:32:15Z")

</div>

@Samsinite right you are! Also, instead of referring to the service with this.tokenService we’d need to use this.get(‘tokenService’) as i understand. And we can use Ember.inject inside of any object: controller, route, etc.
