здесь есть подписка?

я есть странный случай в шаблоне элементов Aurelia с if.bind внутри repeat.for не показывается / скрывается, когда изменяется их базовое свойство. С помощью следующего кода поля редактирования должны отображаться, а кнопка редактирования должна быть скрыта, как только будет нажата кнопка редактирования. Впоследствии кнопки сохранения и отмены должны скрыть поля редактирования и снова отобразить кнопки редактирования.

MyList.ts:

import { computedFrom } from "aurelia-binding";

export class MyList
{
  items: any[] = [{
      "firstName": "Joe",
      "lastName" : "Blow",
      "id": 1
    },
    {
      "firstName": "Jane",
      "lastName" : "Doe",
      "id": 2
    }
  ]

  editingItem: any = null
  isEditing: boolean;

  edit(item){
    this.editingItem = item;
    this.isEditing = true;
  }

  editFirst(item){
    this.editingItem = this.items[0];
    this.isEditing = true;
  }

  undo(){
    // undo logic here
    this.editingItem = null;
    this.isEditing = false;
  }

  save(){
    // Save logic here
    this.editingItem = null;
    this.isEditing = false;
  }
}

MyList.html:

<template>
  <table>
    <tbody>
      <tr repeat.for="item of items">
        <td if.bind="!isEditing">
          <button click.delegate="edit(item)">Edit</button>
        </td>
        <td>${item.firstName}</td>
        <td>${item.lastName}</td>
        <td if.bind="isEditing && editingItem.id == item.id">
          <button click.delegate="save()">Save</button>
          <button click.delegate="undo()">Undo</button>
          <input value.bind="editingItem.firstName" />
          <input value.bind="editingItem.lastName" />
        </td>
      </tr>
    </tbody>
  </table>
</template>

Нажатие на кнопку редактирования ничего не делает. Интересно, если я добавлю

${isEditing}

В любом месте шаблона за пределами repeat.for код работает как положено. Как будто движок рендеринга не знает, как перерисовать элементы внутри цикла повторения.

Это ошибка? Или я что-то делаю глупо?

Ответы на вопрос(1)

Ваш ответ на вопрос