Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.09.2022, 08:41
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

vue3 Вывод имени компонента в теге
Привет. РХочу передать имя компонента в тег. То есть.

import SiteForm from './SiteForm';
export default {
        components: {
            SiteForm
        },
 setup() {
const forms = {Site:'<'+SiteForm.name+'></'+SiteForm.name+'>'}
 return {forms}
}
}


Далее передаю его в другой шаблон и там

<template>
              <form v-for="(form,item) in forms" :key="item" >
                    <div v-html="form"></div>
              </form>
</template>


Но проблема в том, что v-html переводит строку в нижний регистр и на выходе я имею
<siteform></siteform>
Решить с регистром вроде никак нельзя. Но думаю можно предварительно form как то разделить и поставить тире между словами. Ведь до v-html в ней SiteForm
Как превратить SiteForm в Site-Form?
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2022, 13:12
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Для начала вопрос: нахрена?
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2022, 15:29
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Да уж и сам понял) Да и всё равно так <div v-html="form"></div> не работает. В браузере код есть <name></name>, но сам компонент не выводится.
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2022, 15:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Если тебе просто надо вывести произвольный vue компонент внутри vue-компонента, для этого существует
<component :is="Component"></component>

Т.е.
<script>
import SiteForm from './SiteForm';
import SiteForm2 from './SiteForm2';

const forms = [SiteForm, SiteForm2];

export default {
  setup() {
    return { forms }
  }
}
</script>

<template>
  <form v-for="(form, i) in forms" :key="i">
    <component :is="form"></component>
  </form>
</template>
__________________
29375, 35

Последний раз редактировалось Aetae, 21.09.2022 в 15:40.
Ответить с цитированием
  #5 (permalink)  
Старый 21.09.2022, 20:22
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Большое спасибо. То что надо).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод имени профиля мозилы на JS prof-strike Firefox/Mozilla 0 04.11.2018 12:24