import (Injectable) from 'angular2/core';
@Injectable()
export class DataService {
}import {Component, provide} from 'angular2/core';
import {DataService} from './data.service';
@Component({
selector: 'my-component',
template: `<div>My Component</div>`,
// providers: [provide(DataService, {useClass: DataService}]
providers: [DataService]
})
class MyComponent {
constructor() {}
}import {Component, Inject} from 'angular2/core';
import {DataService} from './data-service';
@Component({
selector: 'my-component',
template: `<div>My Component</div>`,
providers: [DataService]
})
class MyComponent {
constructor(@Inject(DataService) dataService : DataService) {
console.log(this.dataService.data);
}
}import {Component, Inject} from 'angular2/core';
import {DataService} from './data-service';
@Component({
selector: 'my-component',
template: `<div>My Component</div>`,
providers: [DataService]
})
class MyComponent {
constructor(private dataService : DataService) {
console.log(this.dataService.data);
}
}import {Component, Inject, provide, OpaqueToken} from 'angular2/core';
import {DataService} from './data-service';
const LoginToken = new OpaqueToken('LoginServiceConfig');
@Component({
selector: 'my-component',
template: `<div>My Component</div>`,
providers: [DataService,
provide(LoginToken, { useValue: { url: 'myurl' } })]
})
class MyComponent {
constructor(private dataService : DataService,
@Inject(LoginToken) myLoginServiceConfig) {
console.log(this.dataService.data);
console.log(this.myLoginServiceConfig.url);
}
}import {bootstrap, provide} from 'angular2/platform/browser';
import {MyComponent} from './my-component.component';
import {DataService} from './data-service';
const LoginToken = new OpaqueToken('LoginServiceConfig');
bootstrap(MyComponent, [
DataService, // same as provide(DataService, {useClass: DataService})
provide(LoginToken, { useValue: { url: 'myurl' }})
]) // Additional parameter is an array of providers
.catch( err => console.log(err));@Directive(...)
class Draggable { }
@Directive(...)
class Morphable { }
@Component(...)
class RootCmp { }
// at bootstrap
bootstrap(RooCmp, [
provide(DRAG_DIRECTIVES, {useValue: Draggable }),
provide(MORPH_DIRECTIVES, {useValue: Morphable })
]);import {bootstrap, provide} from 'angular2/platform/browser';
import {MyComponent} from './my-component.component';
import {DataService} from './data-service';
const LoginToken = new OpaqueToken('LoginServiceConfig');
bootstrap(MyComponent, [
...ENV_PROVIDERS,
...HTTP_PROVIDERS,
...ROUTER_PROVIDERS,
DataService, // same as provide(DataService, {useClass: DataService})
provide(LoginToken, { useValue: { url: 'myurl' }})
]) // Additional parameter is an array of providers
.catch( err => console.log(err));bootstrap(RooCmp, [
provide(PLATFORM_DIRECTIVES, {useValue: Draggable, multi: true}),
provide(PLATFORM_DIRECTIVES, {useValue: Morphable, multi: true})
]);
export const DIRECTIVES = [
provide(PLATFORM_DIRECTIVES, {useValue: APPLICATION_DIRECTIVES, multi: true})
];