5

I have a working angular2 Component. I implemented a class for some service (using ng.core.Class if that matters). What are the minimal steps to inject my service to my Component? Should I include my service in bootstrap function? Should I use any of ng.core.Inject or ng.core.Injectable? All my experiments failed so far.

1
  • I refer to current beta version of angular2 in this question. Commented Dec 30, 2015 at 15:16

1 Answer 1

12

You can do it super simple. Just create a class an pass it through providers property or through bootstrap

For example

 // Alternative 1
 var Service = ng.core.Class({
  constructor : function() {},
  someFunction : function() {
    console.log('Some function');
  }
})

// Alternative 2
var Service = function() {}
Service.prototype.someFunction = function() {
  console.log('Some function');
}

Then pass it to the component

var Component = ng.core.
      Component({
        selector: 'cmp',
        template : '',
        providers : [Service]
      }).
      Class({
        constructor: [Service, function(svc) {
          svc.someFunction();
        }]
      });

Or through bootstrap

ng.platform.browser.bootstrap(Component, [Service]);

Here's an example so you can take a look at it.

Reference

  • Class (you can find some examples of its usage in the comments)
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks. It works that way. The reason it not worked for me is that I was trying to refer to Service before I created it. So the order of js files loading is important with such approach.
@SergeyP.akaazure can you please accept the answer if it answers your question?
what if i need to use two services?? how can i specify that in constructor?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.