如何在Vue.js中創(chuàng)建和克隆模板

在這里,用戶應(yīng)該能夠使用方法“useIt()”的按鈕創(chuàng)建任意多的person Entry。為此,我創(chuàng)建了一個(gè)模板。當(dāng)用戶單擊按鈕時(shí),模板應(yīng)該被克隆并附加到container div中。我已經(jīng)在jsfiddle中嘗試過這個(gè)函數(shù),它工作得非常好。現(xiàn)在我把它復(fù)制到我的vue應(yīng)用程序中,它不再工作了。我沒有收到任何錯(cuò)誤或警告,它只是沒有任何作用。可能是什么錯(cuò)誤?

下面是指向我的功能的JSFIDLE鏈接:http://jsfiddle.net/4vuae12j/1/

 <template>
      <div class="content_modal noShadow modul">
        <div class="modal-header modul_header">
          <h3 class="modul_title">{{ title }}</h3>
        </div>
    
    
        <div class="body">     
    
          <!-- Person Data -->
          <testmodul1></testmodul1>
    
          <!-- Degree -->
          <testmodul2 title="2 Degree"></testmodul2>
        </div>
    
        <button @click="useIt()">
          Use me
        </button>
        <div id="container"></div>
    
        <template id="temp">
          <div>
            <label>Firstname</label>
            <input type="text"/>
            <label>Lastname</label>
            <input type="text"/>
          </div>
        </template>
      </div>
    </template>
    <script>
    
        //Load Modules
        let testmodul1 = Vue.defineAsyncComponent(() =>
          loadModule("./components/1_1_Module_Person.vue", options)
        );
        let testmodul2 = Vue.defineAsyncComponent(() =>
          loadModule("./components/2_Module_Degree.vue", options)
        );
        
        export default {
          data() {
            return {
              title: "Title",
            };
          },
          components: {
            testmodul1: testmodul1,
            testmodul2: testmodul2,
          },
          methods:{
            useIt(){
              console.log("##########CLICKED##########");
              var content = document.querySelector('#temp').content;
              console.log(content);
              document.querySelector('#container').appendChild(
              document.importNode(content, true));
            }
          }
        };
        </script>
? 最佳回答:

您可以在v-for中使用它,如下所示:


<div v-for="newContent in temp" :key="newContent.id">
  <div>
    <label>Firstname</label>
    <input type="text"/>
    <label>Lastname</label>
    <input type="text"/>
  </div>
</div>

您必須在click事件中更改某些內(nèi)容,例如:

methods: {
  useIt() {
    this.temp.push({
      id: this.id += 1;
    })
  }
}

data() {
  return {
    id: 0, 
    temp: [{    //this is your first "input" 
      id: 0, 
    }],
  }
}

所以每次你點(diǎn)擊你的按鈕,你就把新的content推到你的模板上,它是在你的template中定義的。您還可以在每次單擊該按鈕時(shí)將unique ID推到您的模板上,這使得以后使用它更加容易。

希望這個(gè)答案能幫到你!

只為你:在v-forv-modelv-if等機(jī)會(huì)上使用vue.js給你的東西比試圖用jQuery解決它更容易:)

主站蜘蛛池模板: 波霸影院一区二区| 亚洲av乱码中文一区二区三区| 中文字幕无线码一区二区| 国产精品一区在线观看你懂的| 中文字幕av一区| 久久人做人爽一区二区三区| 91一区二区三区| 一区二区三区国模大胆| 日本精品视频一区二区| 亚洲综合一区二区| 成人免费区一区二区三区| 精品国产日韩亚洲一区在线| 亚洲视频一区二区三区四区| 中文字幕一区一区三区| 久久99国产精品一区二区| 一区二区三区四区在线视频| 视频一区在线播放| 亚洲国产综合无码一区二区二三区 | 精品乱码一区二区三区在线| 国模无码视频一区二区三区| 亚洲AV无码一区二区三区电影| 日韩一区二区超清视频| tom影院亚洲国产一区二区| 国产精品高清一区二区三区不卡| 亚洲视频免费一区| 精品人妻无码一区二区色欲产成人| 亚洲AV噜噜一区二区三区| 精品日韩一区二区三区视频| 午夜DV内射一区区| 亚洲国产综合精品一区在线播放| 精品一区二区三区四区在线| 国产亚洲一区二区在线观看| 亚洲视频一区二区三区| 亚洲av无一区二区三区| 国产成人AV区一区二区三 | 亚洲AV午夜福利精品一区二区 | 免费精品一区二区三区在线观看| 国产伦精品一区二区三区四区 | 日产亚洲一区二区三区| 97久久精品无码一区二区天美| 韩国资源视频一区二区三区|