6

I know how to call a TypeScript when clicking a button, but how do you call a function without that type of event? I would like to call a function when I have an array called chartData populated. This is what I have:

        <div *ngIf="chartData.length">
            chartMethod();
        </div>

But instead of chartMethod() being called, it just prints 'chartMethod()' on the html page.

I've also tried:

            <script> 
                chartTest();
            </script>

but the function was still not called.

3 Answers 3

6

It happens because this chartTest() is incapsulated by Angular and is not accessible outside Angular. But inside angular you can, you just need to:

<div *ngIf="chartData.length">
    {{chartMethod()}}
</div>

But it will add an undefined in html so just test

<div *ngIf="chartData.length">
    {{chartMethod() ? chartMethod() : ""}}
</div>

But I don't think it's html resposibillity call any method, it needs to be done by the component itself in typescript.

Sign up to request clarification or add additional context in comments.

Comments

1

Angular 2, You can call a method automatically by passing a method 'checkFieldAccess()' in [ngClass] In template file write this

 [ngClass]="{check:checkFieldAccess(dataPass)}"

Comments

1

In your component.ts put his after constructor

ngAfterViewInit(){
    this.getUser();//Put here your function or what you need
  } 

ngAfterViewInit() is called after a component's view, and its children's views, are created. Its a lifecycle hook that is called after a component's view has been fully initialized.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.