Изменить тип и ввод значения с помощью angular 8 - PullRequest
0 голосов
/ 05 февраля 2020

Я начал работать в изолированной angular 8 библиотеке, и я хочу создать компонент ввода с некоторыми характеристиками, проблема в том, что когда я устанавливаю тип недвижимости ie во входных данных значение свойства ie ничего не показывает Это пример с типом Date и значением new Date ('12 -23-2009 ')

interface ITypeInput {
  getType: ()=>string
  getValue:()=>any
}

abstract class ATypeInput {
  value: any;
  constructor(value: any) {
    this.value = value;
  }
  setValue(val: any) {
    this.value = val;
  }

  getValue() {
    return this.value;
  }
}

export class TextTypeInput extends ATypeInput implements ITypeInput  {
  getType = ()=>'text';
}

export class NumberTypeInput extends ATypeInput implements ITypeInput  {
  getType = ()=>'number';
}

export class DateTypeInput extends ATypeInput implements ITypeInput {
  getType = ()=>'date';
}

export class KInputComponent implements OnChanges {
  @Input() inputData: ITypeInput;
  @Output() changeValue: EventEmitter<any> = new EventEmitter();
  type: string;
  value: any;
  ngOnChanges(changes: SimpleChanges): void {
    if(!!changes.inputData) {
      this.type = this.getTypeOf(changes.inputData.currentValue)
      this.value = changes.inputData.currentValue.getValue()
    }
  }
  constructor() { }

  getTypeOf(currentValue:ITypeInput): string {
    return currentValue.getType();
  }

  valueInputChange(value) {
    console.log(value);
    this.changeValue.emit(value);
  }
}



///app-component

export class AppComponent {
  title = 'angul-akita';
  initialValue:any;
  constructor(){
    this.initialValue =new DateTypeInput(new Date('12-23-2009'));
  }
}
//KInputComponent
<input [value]="value" [type]="type"/>

//appComponent
<k-input [inputData]="initialValue"> </k-input>

компонент приложения только обновляет тип во входном компе onet, но значение не отображается.

некоторая идея, почему это происходит?

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...