import { bundle, Input, Inject, Component, Directive } from 'ng-forward'; @Component({ selector: 'noosfero-default-article', templateUrl: 'app/components/noosfero-articles/article/article.html', providers: ['$injector', '$compile'] }) export class ArticleView { } /** * * * */ @Directive({ selector: 'noosfero-article', providers: ['$injector', '$compile'], }) @Inject('$element') @Inject('$scope') export class ArticleDirective { @Input("article") article: any; @Input("profile") profile: any; constructor($element: any, $scope: ng.IScope, private $injector: ng.auto.IInjectorService, private $compile: ng.ICompileService) { console.log('ARTICLE DIRECTIVE'); var specificDirective = 'noosfero' + this.article.type; if ($injector.has(specificDirective + 'Directive')) { var directiveName = specificDirective.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); $element.replaceWith($compile('<' + directiveName + ' article="vm.article" profile="vm.profile">')($scope)); //$element.html($compile('<' + directiveName + ' article="vm.article" profile="vm.profile">')(scope)) } else { //TODO } } } bundle('noosferoApp', ArticleDirective).publish();