Я пытаюсь создать вход, который отображает формат времени, но содержит значение в минутах. Например: 1:30 содержит значение 90.
Моим первым вариантом было использование директивы.
Теперь, если я изменю значение на входе на 75, отображаемое значение должно быть 1:15.
Я предпочитаю не использовать @Output и EventEmitter и настроить метод для изменения моего значения.
Компонент:
public value = 90;
Вид:
<p><input [(appTimespan)]="value"></p>
<p>Value: {{ value }}</p>
Директива (отрывок):
@Directive({ selector: '[appTimespan]'})
export class TimespanDirective {
@Input( 'appTimespan' ) value: string;
// @Output( 'out' ) update = new EventEmitter();
constructor(private element: ElementRef) {
// just to indicate the directive is applied
element.nativeElement.style.backroundColor = 'yellow';
}
@HostListener('change') onChange() {
// skip the code for calculations and formatting
this.value = 75;
this.element.nativeElement.value = '1:15';
// this.update.emit(75);
}
}
Значение (дисплей) моего ввода установлено на 1:15, отлично ...
Но значение, отображаемое в представлении, все еще показывает мое начальное значение 90, где я ожидаю, что оно будет 75.