В angular 1 возможно декорировать (переопределять) директивы.
Это объясняется здесь: http://www.bennadel.com/blog/2926-overriding-directive-definitions-in-angularjs.htm
Существует встроенная функция
angular.module( "X" ).decorator(
для этого.
В angular2 у нас нет модулей. Рекомендуемым способом является использование модулей typescript.
Как можно украсить (переопределить) директивы в angular2?
Основная причина, по которой я хочу это сделать, заключается в настройках, когда я развертываю свое приложение на нескольких сайтах.
Скажем, что у меня есть пакет bundle.js со всем моим приложением, я хочу, чтобы просто добавить в customer.js кучу настроек вместо того, чтобы изменять и перестраивать существующие существующие bundle.js для каждого развертывания сайта.
Добавьте конкретный пример из тура героев: Я определил свой компонент приложения в файле javascript:
import {Component, OnInit} from 'angular2/core';
import {Hero} from './hero';
import {HeroDetailComponent} from './hero-detail.component';
import {HeroService} from './hero.service';
@Component({
selector: 'my-app',
template:`
<h1>{{title}}</h1>
<h2>My Heroes</h2>
<ul class="heroes">
<li *ngFor="#hero of heroes"
[class.selected]="hero === selectedHero"
(click)="onSelect(hero)">
<span class="badge">{{hero.id}}</span> {{hero.name}}
</li>
</ul>
<my-hero-detail [hero]="selectedHero"></my-hero-detail>
`,
directives: [HeroDetailComponent],
providers: [HeroService]
})
Я хочу иметь возможность в другом файле javascript переключать HeroDetailComponent с другим компонентом CustomHeroDetailComponent.
Как это возможно?