2017-10-03 2 views
1

Donc, je ne sais vraiment pas comment dire cela, mais j'essaie de créer une séquence quand quelqu'un clique sur l'un des trois boutons, il ira au nouveau texte après qu'ils ont appuyé sur le bouton . La chose est que je ne sais pas comment le démarrer. Ai-je besoin de créer un autre modèle ou pourrais-je utiliser celui que j'utilise? HTML:faire du texte aller au nouveau texte

<div id="app"> 

    <barista-template></barista-template> 
</div> 


    <!--template for customer--> 
<script type="text/x-template" id="b-template"> 
    <div> 
     <div>{{showText}}</div> 
     <button v-on:click="choose('drip')">Drip</button> 
     <button v-on:click="choose('frenchpress')">French Press</button> 
     <button v-on:click="choose('aeropress')">Aeropress</button> 
    </div> 
</script> 

<script type="text/x-template" id="c-template"> 
    <div> 
     <div>{{showText2}}</div> 
    </div> 
</script> 


<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.4/vue.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js"></script> 
<script src="JS/app.js"></script> 
</body> 
</html> 

JS

Vue.component("customer-template",{ 
    template:"#c-template", 
    data:function(){ 
     return{ 
      order_type:"", 
     } 
    }, 
    computed:{ 
     showText2(){ 
      if(this.order_type === '') return ''; 
      return 'waiting for' + this.order_type 
     } 

    } 
}); 
Vue.component("barista-template",{ 
    template: "#b-template", 
    data: function() { 
     return{ 
      order_type:"", 
      order_value: "", 
     } 
    }, 
    computed: { 
     showText() { 
      if(this.order_type === '') return ''; 
      return 'One ' + this.order_type + ' that would be ' + this.order_value 
     } 
    }, 
    methods: { 
     choose: function (order_type) { 
      this.order_type = order_type; 

      if (this.order_type == "drip") { 
       this.order_value = "$10"; 
      } 
      if (this.order_type == "frenchpress") { 
       this.order_value = "$20"; 
      } 
      if (this.order_type == "aeropress") { 
       this.order_value = "$30"; 
      } 
     } 
    }, 
}); 
new Vue ({ 
    el:"#app", 
    data:function() { 
     return{ 
      showing:true 
     } 
    } 
}); 
+0

que voulez-vous dire par 'aller à nouveau Text' ,, votre code fonctionne très bien ,, vous refere une certaine tween ou pour effet de faire glisser le texte? si vous le faites s'il vous plaît partager similaire ou exemple d'URL pour obtenir le sentiment de ce que vous avez besoin .. –

+0

désolé à ce sujet alors quand quelqu'un appuie sur l'un des trois boutons [showText2] est supposé venir juste après il qui dit: 'attente pour' + this.order_type –

+0

voir ma réponse si c'est ce dont vous avez besoin –

Répondre

0

Est-ce que vous avez besoin? un modèle et j'ajouté une nouvelle propriété

Vue.component("barista-template",{ 
 
    template: "#b-template", 
 
    data: function() { 
 
     return{ 
 
      order_type:"", 
 
      order_value: "", 
 
     } 
 
    }, 
 
    computed: { 
 
     showText() { 
 
      if(this.order_type === '') return ''; 
 
      return 'One ' + this.order_type + ' that would be ' + this.order_value 
 
     }, 
 
     showText2(){ 
 
      if(this.order_type === '') return ''; 
 
      return 'waiting for ' + this.order_type 
 
     } 
 
    }, 
 
    methods: { 
 
     choose: function (order_type) { 
 
      this.order_type = order_type; 
 

 
      if (this.order_type == "drip") { 
 
       this.order_value = "$10"; 
 
      } 
 
      if (this.order_type == "frenchpress") { 
 
       this.order_value = "$20"; 
 
      } 
 
      if (this.order_type == "aeropress") { 
 
       this.order_value = "$30"; 
 
      } 
 
     } 
 
    }, 
 
}); 
 
new Vue ({ 
 
    el:"#app", 
 
    data:function() { 
 
     return{ 
 
      showing:true 
 
     } 
 
    } 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.4/vue.min.js"></script> 
 

 

 
<div id="app"> 
 
    <barista-template></barista-template> 
 
</div> 
 

 

 

 

 
    <!--template for customer--> 
 
<script type="text/x-template" id="b-template"> 
 
    <div> 
 
     <div>{{showText}}</div> 
 
     <button v-on:click="choose('drip')">Drip</button> 
 
     <button v-on:click="choose('frenchpress')">French Press</button> 
 
     <button v-on:click="choose('aeropress')">Aeropress</button> 
 
     <div>{{showText2}}</div> 
 
    </div> 
 
</script> 
 

 
<script type="text/x-template" id="c-template"> 
 
    <div> 
 
     <div>{{showText2}}</div> 
 
    </div> 
 
</script>

+0

Oui, c'est ce que je cherche mais ça suppose d'être une fois certains presses l'un des trois boutons alors l'attente pour le goutte à goutte se montrerait Exemple: client press goutte à goutte [un goutte à goutte qui serait 10 $] il dit [en attente de goutte à goutte]. –

+0

alors je suppose que j'ai besoin d'une méthode de temps? –

+0

oui, je suggère de mettre ID sur ce div où vous souhaitez remplacer le texte, puis utilisez 'setTimeout' pour remplacer le texte –