If you want to write an AngularJs (1.5) component using Angular (>=2) approach, you could use:
import { FooComponent } from './foo.component';
angular.module('app.module', [])
.component('fooComponent', FooComponent);
import { Component } from './core/helpers/decorators';
@Component({
bindings: {
bar: '<'
},
template: '<p>{{$ctrl.bar}}</p>'
})
export class FooComponent {
bar: string;
constructor(public $http: ng.IHttpService) {}
$onInit() {
// do something with this.bar or this.$http upon initialization
}
}
export const Component = function(options: ng.IComponentOptions): Function {
return (controller: Function) => {
return angular.extend(options, { controller });
};
};