Posts

Showing posts with the label Interface

Angular Material Table Dynamic Columns Without Model

Answer : I found solution :) It is very very easy but i could't see at first :) only like that : <mat-cell *matCellDef="let element "> {{element[disCol]}} </mat-cell> I must use {{element[disCol]}} only in HTML. Now , everything is ok:) For a full working example based on @mevaka's Where jobDetails$ is the array of items. columns$ is equvilent to Object.keys(jobDetails$[0]) so is just an string[] <table mat-table [dataSource]="jobDetails$ | async"> <ng-container *ngFor="let disCol of (columns$ | async); let colIndex = index" matColumnDef="{{disCol}}"> <th mat-header-cell *matHeaderCellDef>{{disCol}}</th> <td mat-cell *matCellDef="let element">{{element[disCol]}}</td> </ng-container> <tr mat-header-row *matHeaderRowDef="(columns$ | async)"></tr> <tr mat-row *matRowDef="let row...

Constructor In An Interface?

Answer : Taking some of the things you have described: "So you could be sure that some fields in a class are defined for every implementation of this interface." "If a define a Interface for this class so that I can have more classes which implement the message interface, I can only define the send method and not the constructor" ...these requirements are exactly what abstract classes are for. A problem that you get when you allow constructors in interfaces comes from the possibility to implement several interfaces at the same time. When a class implements several interfaces that define different constructors, the class would have to implement several constructors, each one satisfying only one interface, but not the others. It will be impossible to construct an object that calls each of these constructors. Or in code: interface Named { Named(String name); } interface HasList { HasList(List list); } class A implements Named, HasList { /** implements ...