Error : No providers for Component
Solution 1
It seems you have missed to register FoldersComponent
to @NgModule({})
Can you post your main file where you have used NgModule
Solution 2
I was facing the same issue. Turns out I had missed updating the following in my code:
@Injectable({ providedIn: 'root' })
in the .ts file of the component that you want to import.Add the component in the NgModule of your appModule.
Solution 3
try this, you have not imported your component.
import { FoldersComponent } from '../path/to/component
constructor(private _foldersComponent : FoldersComponent){}
@Directive({
selector: '[icheck]'
})
... rest of file
Then to call methods from FoldersComponent just use _foldersComponent.
For example, this._foldersComponent.someMethod()
user1814879
Updated on June 08, 2022Comments
-
user1814879 almost 2 years
I have a directive where I defined a radio button and I want to call a method of a component .. Whene I inject the component in constructor I got this error :
ERROR Error: No provider for FoldersComponent!
directive.ts
import { FoldersComponent } from '../folders/folders.component'; import { Directive, ElementRef, HostListener, Input, AfterViewInit, ViewChild, EventEmitter, Output } from '@angular/core'; declare var jQuery: any; @Directive({ selector: '[icheck]' }) export class IcheckDirective implements AfterViewInit { @Output('icheck') callComponentFunction: EventEmitter<any> = new EventEmitter<any>(); constructor(private el: ElementRef, private parentCmp: FoldersComponent) { jQuery(this.el.nativeElement).iCheck({ checkboxClass: 'icheckbox_square-aero', radioClass: 'iradio_square-aero' }).on('ifChecked', function(event) { if (jQuery('input').attr('type') === 'radio') { this.parentCmp.selectType(); } }); } ngAfterViewInit(): void { } }
folder.component.ts
@Component({ selector: 'app-folders', templateUrl: './folders.component.html', styleUrls: ['./folders.component.css'], }) export class FoldersComponent implements OnInit { constructor( private route: ActivatedRoute, private router: Router ) { } selectType() { // alert(); console.log("Ici"); } }
folder.component.html
<input type="radio" icheck name="filters.type" [(ngModel)]="filters.type" value="IN"> (IN)
My @NgModule
@NgModule({ declarations: [ AppComponent, LoginComponent, FoldersComponent, ],