मेरे पास एक निर्देश है और मैं इसे कई मॉड्यूल में उपयोग करना चाहता हूं। प्रत्येक मॉड्यूल पर इसे घोषित करने से त्रुटि उत्पन्न होती है। इस प्रकार, मैंने इसे साझा मॉड्यूल में घोषित करने की कोशिश की और इस साझा मॉड्यूल को अन्य मॉड्यूल में आयात किया। हालांकि, यह काम नहीं किया। यह केवल तब काम करता है जब इसे घटक के अपने मॉड्यूल पर बिल्कुल घोषित किया जाता है।कोणीय 2 - एक ही मॉड्यूल में घोषित नहीं होने पर निर्देश काम नहीं कर रहा है
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { GeneralDataService } from './general-data.service';
import {ModalDirective} from '../directives/modal.directive';
@NgModule({
imports: [
CommonModule
],
providers: [GeneralDataService],
declarations: [ModalDirective]
})
export class SharedModule { }
और मॉड्यूल है कि मैं चाहता हूँ का उपयोग करने के ModalDirective
:
यहाँ मेरी SharedModule
है
export class MyComponent implements OnInit, AfterViewInit {
@ViewChild(ModalDirective) modal: ModalDirective;
...
}
MyComponent
में modal
०१२३८०३८२५३४ है:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MyComponent } from './patient.component';
import {SharedModule} from '../shared/shared.module';
@NgModule({
imports: [
CommonModule,
SharedModule
],
providers: [ ],
declarations: [ MyComponent ]
})
export class MyModule { }
MyComponent
घटक में(यहां तक कि ngAfterViewInit
में) यदि ModalDirective
MyModule
में घोषित नहीं किया गया है। कोई भी जानता है कि इसे कैसे ठीक किया जाए?
काम के लिए साझा मॉड्यूल पर docs देखें जरूरत है। धन्यवाद! –
Thx Fredrik! मेरे निर्देश में 'टेम्पलेट रिफ' का इंजेक्शन है। हालांकि जब मैं 'NgModule.exports' सूची में निर्देश जोड़ता हूं, तो मुझे एक त्रुटि मिली है' टेम्पलेटरफ के लिए कोई प्रदाता नहीं! '। कोई विचार? – cosmozhang
@cosmozhang - वास्तव में आपके कोड को देखे बिना नहीं बता सकता है, लेकिन इस धागे को देखें: https://stackoverflow.com/questions/35932074/angular2-no-provider-for-templateref-ngif-templateref –