Change property of ion-input through a directive

#1

Hello all,

on the most of my ion-inputs I have similar attributes and properties and to prevent copy and pasting them again and again I want to add a directive which adds the correct attributes and properties.

Example:
I have an object containing the value and the parameters of the input.

let obj = {
  value: 123,
  paras: {
    min: 0,
    max: 200,
    ...
  }
}

Now I want to enterthe input like that

<ion-input myProperties [paras]="obj.paras" [(ngModel)]="obj.value"></ion-input>

to generate something like that

<ion-input myProperties [paras]="obj.paras" [(ngModel)]="obj.value" [min]="0" [max]="200"></ion-input>

But how can I achieve this?

I’ve already tried following at the directive:

this.el.nativeElement.setAttribute('min', this.min); // This only affects the ion-input but not the input itself

@HostBinding('attr.min') min;  // This only affects the ion-input but not the input itself

@HostBinding('min') min; //Throws this error: Can't bind to 'min' since it isn't a known property of 'ion-input'.

It would be very nice if anybody could help me with this.

Edit: I’ve also tried adding the attributes directly to the element with this.el.nativeElement.setAttribute(‘min’, this.min);
This works but other directives like my validation directives will not recognize the attributes via @Input then. Does anyone know a solution for this?

Thanks,
Thilo