Вы можете использовать <input [readonly]="{{ variable }}>".
В вашем *.component.ts
инициализируйте переменную:
private variable: boolean = true;
Редактировать 1
Так что это не работает, вам нужно
В вашем *.component.ts
инициализируйте переменную:
@Input() editable: boolean = false;
edit() {
console.log("function called");
this.editable = true;
}
И тогда вы можете использовать, например,
<button (click)="edit()">Click me!</button>
<input type="text" [readonly]="!editable">
Извините за первый неверный ответ.
Живая демоверсия здесь https://stackblitz.com/edit/angular-bei96r