Привет всем, я возобновлю свою проблему в нескольких словах.
Я создал директиву в своей папке Core Module и добавил ее в объявления и экспортировал в такой модуль. Этот модуль реализован в модуле приложения (основной модуль). Я использую декоратор директивы на моей странице индекса (эта страница объявлена в другом модуле страницы модуля) все хорошо, я не получаю никакой ошибки, но логика директивы не запускается.
Я попытался объявить директиву в модуле страницы и она работает. Также что-то очень любопытное, если удалить директиву из модуля ядра, она выдает ошибку. Не удается определить модуль для класса HasfunctionalityDirective, который является правильным
Директива
import { Directive, ElementRef, Renderer2} from '@angular/core';
@Directive({
selector: '[appHasfunctionality]'
})
export class HasfunctionalityDirective{
constructor(
private elem: ElementRef,
private renderer: Renderer2
) {
this.renderer.setStyle(this.elem.nativeElement, 'color', 'blue');
}
}
Основной модуль
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HasfunctionalityDirective } from './directives/hasfunctionality.directive';
@NgModule({
declarations: [
HasfunctionalityDirective
],
imports: [
CommonModule,
],
exports: [
HasfunctionalityDirective
]
})
export class CoreModule { }
Модуль приложения
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { CoreModule } from './core/core.module';
@NgModule({
declarations: [
AppComponent,
],
imports: [
CoreModule,
],
bootstrap: [AppComponent]
})
export class AppModule { }
Index.html
<p appHasfunctionality>
index works!
</p>
В этом случае элемент 'p' должен изменить цвет на синий.
Как видите, модуль приложения получает все элементы ядра, а angular не выдает никакой ошибки, но логика не срабатывает.