Say I have this code here
<div *ngIf="item">lorem ipsum</div>
Is there a way I can call a function if that *ngIf evaluates to true??
you know something like this..
<div *ngIf="(item) : callFunction() ? ...">lorem ipsum</div>
any help would be appreciated!
Thanks
Try *ngIf="condition && yourfunction()" . Your function must return true to the if evaluate to true, but it will only be executed if your condition is true, since an and operator will stop on first false. I would advise against this. This is very bad practice and will cause serious performance issues in your codebase.
It can be a property of the component class. It can be a method in the component class. But it must evaluate to true/false. The ngIf directive tries to coerce the value to Boolean.
A shorthand form of the directive, *ngIf="condition" , is generally used, provided as an attribute of the anchor element for the inserted template. Angular expands this into a more explicit version, in which the anchor element is contained in an <ng-template> element.
Angular way would be:
<div *ngIf="name; then func(); else false">;</div>
But as *ngIf
evaluates passed in logical expression, you can also do:
<div *ngIf="name?func():false">;</div>
Try like this
<div *ngIf="item ===true?callFunction():'otherStuff'">lorem ipsum</div>
You can try like this
Html
<div *ngIf="item; then callfunction; else nofunction"></div>
<ng-template #callfunction>
{{call()}}
</ng-template>
<ng-template #nofunction>
<!-- something else -->
</ng-template>
Ts
call(){
}
If you got better solution than this please post that to
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With