vuetify vuejs vue ejemplos data componentes cli javascript vue.js

javascript - vuejs - vuetify



Pasando la funciĆ³n principal al componente secundario en VueJS (1)

Tengo mi práctica en VueJS 1.0 y estoy aprendiendo sobre los componentes. en este example , hay un elemento de input y tiene que proporcionar un coupon o algún tipo de code desde una API. Y tengo que validar. Tengo mi componente <coupon > y tengo accesorios de when-applied . when-applied debe llamar a la función principal setCoupon pero no lo hará.

Solo recibí este error this.whenApplied is not a function .

<div id="demo" class="list-group"> <script id="coupon-template" type="x-template"> <input type="text" v-model="coupon" v-on:blur="whenCouponHasBeenEntered"> <div v-text="text"></div> </script> <coupon when-applied="setCoupon"></coupon> </div>

Aquí está mi archivo app.js

Vue.component(''coupon'', { template: ''#coupon-template'', props: [''whenApplied''], data: function() { return { coupon: '''', invalid: false, text: '''' } }, methods: { whenCouponHasBeenEntered: function() { this.validate(); }, validate: function() { if( this.coupon == ''FOOBAR'') { this.whenApplied(this.coupon); return this.text = ''20% OFF!!''; } return this.text = ''that coupon doesn`t exists''; } } }); new Vue({ el: ''#demo'', methods: { setCoupon: function(coupon) { alert(''set coupon''+ coupon); } } });

Alguien por favor ayuda. Sugerencias bastante apreciadas.


Debes bind la propiedad:

<coupon v-bind:when-applied="setCoupon"></coupon>

o podrías usar la sintaxis abreviada para v-bind :

<coupon :when-applied="setCoupon"></coupon>

Lea más sobre los props here .