Я новичок в каркасе aurelia. Я пытаюсь создать список текстовых входов с встроенным редактированием. Каждый вход должен быть отключен по умолчанию, и после нажатия кнопки редактирования он должен иметь возможность редактировать, удалив атрибут disbaled
.Переплетные элементы массива в виде
Мои welcome.js:
import {inject} from 'aurelia-framework';
@inject(HttpClient)
export class Welcome {
heading = 'Welcome';
inputs_list = [
{
'id': 1,
'text': 'example one',
'edit': false
},
{
'id': 2,
'text': 'example two',
'edit': false
},
];
editInput(evt){
let input = this.inputs_list.find(input => input.id === id);
input.edit = true;
}
}
мой взгляд файл welcome.html:
<template>
${heading}
<ul>
<li repeat.for="input of inputs_list">
<input ${input.edit ? '' : 'disabled'} type="text" value="${input.text}" class="inputs"/>
<input type="button" click.delegate="editInput(input.id)" value="edit" />
</li>
</ul>
</template>
И я получаю предупреждаю:
WARN [templating-binding] Unknown binding command. Object {defaultBindingMode: null, attrName: "${input", attrValue: "", command: "edit", expression: null}
Я уже нашел решение путем модификации метода editInput
и передачи $event
в качестве параметра:
editInput(evt){
let inputs = evt.target.parentNode.getElementsByClassName('inputs');
Array.from(inputs).forEach(input => input.removeAttribute('disabled'));
}
Это работает, но я хотел бы знать, что является правильным способом достижения этого?
большое вам спасибо! – pa7ryk