Удалить объект в массиве в Riot.js, когда у меня есть несколько тегов - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь удалить объект из массива, но по какой-то причине не могу получить доступ к массиву. Как я могу получить объект массива в функции delete_task?

В task.tag.html

<task>
    <button onclick={opts.delete_task}>{ title }</button>
</task>

В tasklist.tag.html

<tasklist>
    <todo title="test" delete_task={delete_task}></todo>

    <script>
        this.delete_task = function () {
          for (var i = tasks.length - 1; i >= 0; i--) {
           if (tasks[i].title === this.item.title) {
              tasks.splice(i, 1);
            }
          }
        };

        this.tasks = [{title: "test"}]
     </script>
</tasklist>

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете использовать parent слово в соответствии с подходом для вложенных циклов

И item от события, согласно обработке событий

В результате вы можете получить что-то вроде этого: https://jsfiddle.net/relaximus/q4t8e0sc/

На самом деле, так как событие click всплывает, вы можете использовать onclick для всего тега задачи, в этом случае вам не нужно будет передавать обработчик удаления как функцию в теге.

И просто напишите

 onclick={ parent.deleteTask }
...