I have the below HTML in Angular
<span *ngIf="ControllerType?.AttributeID =='Controller Type'">
<select multiple name="ControllerType.Default" [(ngModel)]="ControllerType1">
<option *ngFor="let z of ControllerType.Options" value={{z.OptionID}}>
{{z.OptionID}}
</option>
</select>
</span>
What I want to know is how can I set ControllerType.Default which is of type string to get the values selected in ControllerType1. So whatever values were selected and stored in ControllerType1 should also be stored in ControllerType.Default
Doing this {{ControllerType.Default=ControllerType1;""}} after the Select tag and inside the iteration just errors out.
use the expression inside the ngModelChange
<span *ngIf="ControllerType?.AttributeID =='Controller Type'">
<select multiple name="ControllerType.Default" [(ngModel)]="ControllerType1" (ngModelChange)="ControllerType.Default = ControllerType1">
<option *ngFor="let z of ControllerType.Options" value={{z.OptionID}}>
{{z.OptionID}}
</option>
</select>
</span>
updated
create and ngInit directive and call it in the HTML
@Directive({
selector: 'ngInit',
exportAs: 'ngInit'
})
export class NgInit {
@Input() values: any = {};
@Input() ngInit;
ngOnInit() {
if(this.ngInit) { this.ngInit(); }
}
}
assign the expression under ngInit directive
[ngInit]="ControllerType1 = ControllerType.Default"
<span [ngInit]="ControllerType1 = ControllerType.Default" *ngIf="ControllerType?.AttributeID =='Controller Type'">
<select multiple name="ControllerType.Default" [(ngModel)]="ControllerType1" (ngModelChange)="ControllerType.Default = ControllerType1">
<option *ngFor="let z of ControllerType.Options" value={{z.OptionID}}>
{{z.OptionID}}
</option>
</select>
</span>