У меня есть пользовательское поле ввода, которое наследуется от HTMLInputElement
:
class TB extends HTMLInputElement {
static get observedAttributes() {
return ['value'];
}
constructor() {
super();
this.addEventListener("change", function (event) {
this.setAttribute('value', this.value);
});
}
connectedCallback() {
this.setAttribute('value', this.value);
}
attributeChangedCallback(name, oldValue, newValue) {
this.value = newValue;
}
}
Я могу сделать следующее:
Введите "test" ввход
(tb.value && tb.value..attributes["value"])==="test
Изменение значения атрибута для изменения свойства
tb.attributes["value"].value ="test" -> tb.value ==="test"
Но я не могу сделать следующее:
tb.value = "test" -> tb.attributes["value"] === "test";
Я думаю, что решение состоит в том, чтобы переопределить get value () и установить значение (значение) класса.Но у меня нет никакого успеха с этим.