Таблица Vuetify — отображение значения столбца на основе условия

Таблица Vuetify — отображение значения столбца на основе условия

У меня есть таблица vuetify, и один из столбцов — url. Мне нужно добавить логику либо к отображаемому URL-адресу, либо к имени группы URL-адресов. Я могу сказать это на основе свойства моего массива правила. Если мои правила[i].urlGroup != '', то я знаю

я пытался добавить

<template v-slot:item.url = "{ index, item }">
    {{ displayURLInfo(index) }}
</template>


displayURLInfo(index) {

    if (this.rules[index].urlGroup != '') {
        // console.info('this.rules[index].urlGroup', this.rules[index].urlGroup) // here printed perfectly on console.
        return this.rules[index].urlGroup
    } else {
        return this.url
    }
}

Я был внутри первого условия if, он отлично записывает консоль, но не отображается в пользовательском интерфейсе.

Моя структура массива правил выглядит так. У него всего 5 свойств

Таблица Vuetify — отображение значения столбца на основе условия

Что я сделал не так?

что показывает первая картинка? как это должно выглядеть? this.rules[index].urlGroup выглядит как пустая строка — следует ли возвращать this.rules[index].url, если this.rules[index].urlGroup пусто... возможно?

Bravo 07.04.2022 14:10

вроде должно быть urlGroup вместо userGroup

Rohìt Jíndal 07.04.2022 14:19

@RohìtJíndal Я исправил орфографию .... они должны быть urlGroup обновлены все коды. Но это не главная проблема, почему он продолжал показывать пустой :(

code-8 07.04.2022 14:59

@Bravo Если urlGroup != '' покажи. В противном случае покажите url

code-8 07.04.2022 15:00

как я уже сказал ... вы должны вернуть this.rules[index].url, если this.rules[index].urlGroup пусто ... возможно? - именно то, что показывает ответ, который вы приняли, - так что не знаю, почему вы меня исправляете

Bravo 07.04.2022 18:32

@Bravo, извините, я пропустил ваш комментарий, вы правы на 100%.

code-8 07.04.2022 18:36
Поведение ключевого слова "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
6
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы должны сделать следующее исправление в методе displayURLInfo() :

  • Используйте urlGroup вместо userGroup.
  • Вместо return this.url должно быть return this.rules[index].url

Рабочая демонстрация:

new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data () {
    return {
      headers: [
        { text: "Priority", value: 'priority' },
      { text: "Name", value: 'name' },
      { text: "URL", value: 'url' },
    ],
      rules: [{
      priority: 1,
      name: "Alpha",
      url: 'https://example.com',
      urlGroup: ''
    }, {
      priority: 2,
      name: "Beta",
      url: 'https://example.com',
      urlGroup: 'userGroup2'
    }],
    }
  },
  methods: {
    displayURLInfo(index) {
      if (this.rules[index].urlGroup != '') {
         return      this.rules[index].urlGroup
      } else {
        return this.rules[index].url
      }
    }
  }
})
<script src = "https://unpkg.com/[email protected]/dist/vue.js"></script>
<script src = "https://unpkg.com/[email protected]/dist/vuetify.min.js"></script>
<link rel = "stylesheet" href = "https://unpkg.com/[email protected]/dist/vuetify.min.css"/>
<div id = "app">
  <v-app id = "inspire">
    <v-data-table
      :headers = "headers"
      :items = "rules"
    >
      <template v-slot:item.url = "{ index, item }">
    {{ displayURLInfo(index) }}
</template>
    </v-data-table>
  </v-app>
</div>

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