VueJS / Vuetify различных цветовых чипов в v-for, проверка объекта с аргументом: цвет с использованием точечной нотации - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь установить цвета v-chip с помощью метода, передавая аргумент и пытаясь использовать точечную нотацию для возврата строки цвета:

<v-chip :color="stateColor(bug.workflow_state)" text-color="white">{{ bug.workflow_state }}</v-chip>

Правильное значениеперешел на метод.Мой argument: color объект выглядит следующим образом ...

stateColors: {
  open: 'green',
  accepted: 'yellow',
  in_progress: 'orange'
}

... установлен в функции данных.Я хочу иметь возможность просто вернуть а-ля:

stateColor (bugState) {
  return this.stateColors.bugState
}

, но this.stateColors.bugState не определено.Передаваемые значения workflow_states будут соответствовать ключам без исключений.Кажется, это было бы более уместно в качестве вычисляемого свойства, но у меня также были проблемы с точечной нотацией, возвращающей ожидаемый результат.Моя попытка была такой:

stateColor: function () {
  return function (bugState) {
    return this.stateColors.bugState
  }
}

В обеих попытках this.stateColors.open возвращает зеленый цвет, но this.stateColors.bugState, где bugState фактически 'open', возвращает неопределенное значение.typeof(bugState) определенно строка.Просто ищу чистый способ добиться этого без множества проверок, которые, как я знаю, сработают.

1 Ответ

0 голосов
/ 09 октября 2018

Вы просто запрашиваете свойство bugState, которое, вероятно, не существует.

Вместо этого запрашивайте ключ, соответствующий вашей переменной bugState:

return this.stateColors[bugState]
...