Использование DirectiveResolver для изменения метаданных @Component
Мне интересно, как использовать DirectiveResolver
объект, чтобы изменить данный Component
,
Зависимости (ng2 движется так быстро, что в наши дни вещи быстро устаревают)
"@angular/common": "~2.4.3",
"@angular/compiler": "~2.4.3",
"@angular/core": "~2.4.3",
Я попробовал это:
import { Component } from '@wwwalkerrun/nativescript-ngx-magic';
import { OnInit, Directive, Type } from '@angular/core';
import { DirectiveResolver } from '@angular/compiler';
class myViewResolver extends DirectiveResolver {
resolve(type: Type<any>, throwIfNotFound?: boolean): Directive {
var view = super.resolve(type, throwIfNotFound);
console.log(type);
console.log(view);
return view;
}
}
@Component({
selector: 'app-root',
templateUrl: 'views/app/app.component.html',
styleUrls: ['views/app/app.component.css'],
providers: [myViewResolver]
})
export class AppComponent {
title = 'app works!';
}
Но я не получаю журналы, поэтому я подозреваю, что распознаватель не выполняется.
Любая идея?
PS: нет записи в официальной документации angular.io API...
1 ответ
Решение
Вам нужно передать дополнительных провайдеров, загрузив приложение для переопределения провайдеров компилятора по умолчанию.
Так что я думаю, что это должно сработать:
platformBrowserDynamic().bootstrapModule(AppModule, {
providers: [
{ provide: DirectiveResolver, useClass: myViewResolver }
]
});