Skip to content Skip to sidebar Skip to footer

How Do I Call A Function In A Class From Another Class In Angular 6?

Here's my code: import { Component, OnInit, ViewChild } from '@angular/core'; import { AuthService } from '../core/auth.service'; import { MatRadioButton, MatPaginator, MatSort, Ma

Solution 1:

Getting Uncaught Error: Can't resolve all parameters for HomeComponent

First of all your dataSource is not registered in a ngModule as injectable. So it's not possible to inject it to the constructor in HomeComponent. I also don't think you want to do that because ngMaterial-dataSources are stateful and injectables shouldn't be stateful.

Class 'UserDataSource' used before its declaration

Your dataSource is not a ViewChild in your component's template. It's just an object (without a html-template). The error you get is that annotations in typeScript are processed on compile/transpile time. But the UserDataSource class is declared below the HomeComponent. You are using it before it's declared. You could just put it above the HomeComponent but better put it in a new file and import it. But that's not the solution.

Possible solution

I don't get why you cannot just call the radioFilter method. It's a public method of your UserDataSource and there is an instantiated object in HomeComponent called dataSource. Just make sure to not call it in the constructor. Member variables are processed after the constructor is called. But imho you can just call dataSource.radioFilter()

Post a Comment for "How Do I Call A Function In A Class From Another Class In Angular 6?"