Функция не может получить нужную переменную

если щелкнуть «iPhone», цвет станет синим

и можно переключать. использовать this.betState[selectId] = !this.betState[selectId];

и нажмите «Удалить», также можно отменить синий цвет «iPhone».

Теперь проблема в том, что "удалить" не работает.

Я думаю, это потому, что del() получает неправильную переменную (this.betState)

но betThis() может получить правильную переменную. так что тугл - это работа.

Как это исправить?

почему del() не может получить нужную переменную?

ставка.тс

  betState = {};


  betThis(selectId){
    this.betState[selectId] = !this.betState[selectId];
    console.info(this.betState)
  }

  del(id){
    this.betState[id] = false
    console.info(this.betState)
  }

bet.html

  <div (click) = "del('o123')">delete</div>

cs.html

<ng-container *ngFor = "let list of test">
  <div class = "a" (click) = "betComponent.betThis(list.test1.qq2[0])" [class.blue] = "betComponent.betState[list.test1.qq2[0]]">
        {{list.test1.qq2[1]}}
    </div>
</ng-container>

<app-bet></app-bet>

приложение.компонент.html

<app-cs [test] = "test" [betState] = "betComponent.betState"></app-cs>

данные

 test = [
    {
      "test1": {
            "qq2": ["o123", "iPhone"],
          },
    }
  ]

демо: https://stackblitz.com/edit/angular-zxlqqj?file=src%2Fapp%2Fapp.component.ts

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте взаимодействие дочернего компонента (bet.component) с родительским компонентом (cs.component) с помощью декоратора @Output.

В cs.component.html используйте директиву *ngIf для удаления «iPhone». Это можно решить, объявив переменную, которая скрывает «iPhone», нажав «удалить», что в дальнейшем обрабатывается с помощью @Output.

Не очень понимаю, можете ли вы изменить мою демонстрацию?

qweqwe 10.04.2019 15:31

То, что вы упомянули, является ключевым моментом. Я понял это после прочтения документа.

qweqwe 11.04.2019 09:01

Другие вопросы по теме