No More Posting New Topics!

If you have a question or an issue, please start a thread in our Github Discussions Forum.
This forum is closed for new threads/ topics.

Navigation

    Quasar Framework

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    Data Binds in duplicate components

    Help
    1
    1
    310
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jorgenogueira last edited by

      i have this component called dynamicFields:

      <template>
      <div ref="Component">
        <q-input type="text" v-model="fieldName" stack-label="Nome do Campo" align="center"/>
        <q-select
          stack-label="Tipo de Campo"
          inverted-light
          color="amber"
          v-model="select"
          :options="typeFields"
          style="width:100%"
          slot="field"
        />
          <q-select
        stack-label="Campo Obrigatorio ?"
        inverted-light
        color="amber"
        v-model="isRequired"
        :options="required"
        style="width:100%"
        />
        <q-btn color="deep-orange" label="Remover Campo" style="width:100%"  @click="deleteThis"/>
      </div>
      </template>
      
      <script>
      import { QSelect } from 'quasar'
      export default {
        mixin: [QSelect],
        methods: {
          deleteThis () {
            (this.$el).remove()
          }
        },
        components: {QSelect},
        data () {
          return {
            fieldName: '',
            select: [
              {
                label: 'Texto',
                value: ''
              },
              {
                label: 'Numerico',
                value: ''
      
              },
              {
                label: 'Booleana',
                value: ''
      
              },
              {
                label: 'Select',
                value: ''
      
              },
              {
                label: 'Radio',
                value: ''
      
              }
            ],
            isRequired: [
              {
                value: ''
              }
            ],
            typeFields: [
              {
                label: 'Texto',
                value: ''
              },
              {
                label: 'Numerico',
                value: ''
      
              },
              {
                label: 'Booleana',
                value: ''
      
              },
              {
                label: 'Select',
                value: ''
      
              },
              {
                label: 'Radio',
                value: ''
      
              }
            ],
            required: [
              {
                label: 'Sim',
                value: true
              },
              {
                label: 'Não',
                value: false
              }
            ]
          }
        }
      }
      </script>
      
      <style scoped>
      </style>
      

      so i have my home page, where the user can duplicate de component and add some values.

      <template>
      <q-page>
      <div id="secure">
          <div ref="container"></div>
      <q-btn color="deep-orange" label="Mostrar dados" style="width:100%"  @click="showData"/>
          <q-btn color="deep-orange" label="Adicionar Campo" style="width:50%"   @click="dynamicField"/>
          <q-btn
          color="secondary"
          style="width:50%"
          @click="back">Voltar
          </q-btn>
      </div>
      </q-page>
      </template>
      
      <script>
      import dynamicField from '../components/dynamicFields'
      import Vue from 'vue'
      
      export default {
        name: 'Secure',
        methods: {
          dynamicField () {
            var ComponentClass = Vue.extend(dynamicField)
            var instance = new ComponentClass()
            instance.$mount() // pass nothing
            this.$refs.container.appendChild(instance.$el)
          },
          back () {
            this.$router.push('/')
          },
          showData () {
            console.log(this)
          }
        },
        components: { dynamicField }
      }
      </script>
      
      <style scoped>
      #secure {
        background-color: #ffffff;
        border: 1px solid #cccccc;
      }
      </style>
      

      the idea and that the user can create as many times as you want this component, with certain configurations, set the component with a button to auto remove, and a function to create the component as many times as necessary.
      I can not find a correct way to get the date of these components, I was thinking of using a Store with vuex, is there any way to achieve this goal?

      1 Reply Last reply Reply Quote 0
      • First post
        Last post