mon
mon

Reputation: 23

Vue js . my function in methods isn't recognized

i have this Vue component but i don't understand the problem :

<template>
    <div>
        <div class="all-cards" >
            <template v-for="(card,index) in res" >
                <div class="cards-new "  draggable="true" :data-id="card.id" @click="infoCard(index)" :key="card.id">
                    <div class="image-card"></div>
                    <div class="titles-card"> 
                        <p>{{card.title}}</p>
                    </div>
                    <div class="footer-card">
                        <div class="circle-people-card"></div>
                    </div>
                </div>
            </template>    
        </div>
        <card-info descriptionCard="hi" idInfo="2" titleCard="sua"></card-info>
    </div>
</template>

<script>
import axios from 'axios';
import CardInfo from './CardInfo.vue'
export default {
  name: 'Card',  
  components:{
      CardInfo
  },
  data(){
      return{
        uri : 'http://localhost:8000',
        res: [],   
        infoCard:'' 
    }
  },
  methods:{
      infoCard: function(clickedId){
          return this.infoCard = clickedId;
      }
  },
  mounted(){
      let url = this.uri + "/ajax/field-info"
      axios.get(url).then((msg) => {
           this.res = msg.data
      });
  }
}
</script>

<style>

</style>

Continue to return me this error:

TypeError: t.infoCard is not a function at click (app.f815278e.js:1) at Xe (900.23d000da.js:2) at HTMLDivElement.n (900.23d000da.js:2) at HTMLDivElement.o._wrapper (900.23d000da.js:2)

Can anyone help me ?

Upvotes: 2

Views: 684

Answers (1)

Nikola Pavicevic
Nikola Pavicevic

Reputation: 23500

You can not have same name infoCard for data property and method, change one and then try.

Upvotes: 3

Related Questions