interface BaseComponent {}
class MyComponent implements BaseComponent {}
component: BaseComponent = MyComponent
// Инжектим в наш компонент-контейнер следующее
private _cfr: ComponentFactoryResolver,
private _vcr: ViewContainerRef
// Для создания компонента руками
// описываем переопределения зависимостей
// Компонент передан в переменной componentClass
const componentProviders = ReflectiveInjector.resolve([
{ provide: Something, useValue: 1 }
]);
// Получаем фабрику из класса нашего компонента, который рендерим
const componentFactory = this._cfr.resolveComponentFactory(componentClass);
// Создаем для него инжектор - используем .parentInjector или .injector нашего текущего компонента, исходя из того, какую иерархию DI нам нужно получить для создаваемого компонента
const childInjector = ReflectiveInjector.fromResolvedProviders(componentProviders, this._vcr.parentInjector);
// Фабрикой создаем экземпляр компонента
let instance = componentFactory.create(childInjector, []);
// Вставляем во view нашего компонента
this._vcr.insert(instance.hostView, this._vcr.length);
// Запускаем отслеживание изменений
instance.componentRef.changeDetectorRef.detectChanges();
let req = Zone.current.get('req'); // Express request object
let res = Zone.current.get('res'); // Express response object
ngOnInit(){
let addSanitizedUrl = (item) => {
item.sanitizedImageUrl = this.sanitizer.bypassSecurityTrustUrl('https://s27.postimg.org/' + this.image + item.image)
return item;
};
this.cartService.getCartItems().subscribe(
(data) => this.cartItems = data.map(addSanitizedUrl)
);
}
<span class="col cart__item--imageBox" [style.background-image.url]=cartItem.sanitizedImageUrl"></span>
getUsers() {
return this.authHttp
.get(APP_SERVER + 'api/users')
.map((response: Response) => response.json());
}
constructor(svc: UserService) {
svc.getUsers().subscribe((response) => console.log(response));
}
{
bindToController: {
segments: '=',
type: '@',
onRemoveSegment: '&'
}
}
function removeSegment(segment, type) {
directiveController.onRemoveSegment({$someInformation: 'Segment ' + segment + ' removed'});
}
<directive on-remove-segment="$ctrl.segmentRemoved($someInformation)"></directive>
this.segmentRemoved = function($someInformation) {
console.log('Callback function ivoked with', $someInformation);
};