2017-01-26 1 views
0

Мой код выглядит так:Как добавить условие в метод vue.js 2?

<template> 
    <a href="javascript:" class="btn btn-block btn-success" @click="addFavoriteStore($event)"> 
     <span class="fa fa-heart"></span>&nbsp;<label id="favoriteId">{{ store_id == $store->id ? 'Un-Favorite' : 'Favorite' }}</label> 
    </a> 
</template> 

<script> 
    export default{ 
     props:['idStore'], 
     mounted(){ 
      this.checkFavoriteStore() 
     }, 
     methods:{ 
      addFavoriteStore(event){ 
       var label = $('#favoriteId'); 
       var text = label.text(); 

       event.target.disabled = true 
       const payload= {id_store: this.idStore} 

       if(text == "Favorite") { 
        this.$store.dispatch('addFavoriteStore', payload) 
       } 
       else { 
        this.$store.dispatch('deleteFavoriteStore', payload)       
       } 

       setTimeout(function() { 
        location.reload(true) 
       }, 1500); 
      }, 
      checkFavoriteStore(){ 
       const payload= {id_store: this.idStore} 
       this.$store.dispatch('checkFavoriteStore', payload) 
       // this is response. return store_id 
      } 
     }, 
     data: { 
      store_id: '' 
     } 
    } 
</script> 

Я делаю условия, как описано выше

Вы можете посмотреть на метод addFavoriteStore

ли этот шаг является правильным?

И как определить, что это была любимая этикетка или не создавать условия?

UPDATE

В консоли существует ошибка, как это:

[Vue warn]: The "data" option should be a function that returns a per-instance value in component definitions. 
+0

какие ошибки вы получаете или пытаетесь, можете ли вы объяснить немного больше? Кроме того, вместо 'event.target.disabled = true', почему бы не добавить вызов' prevent' на метод щелчка '@ click.prevent =" "' https://vuejs.org/v2/guide/events.html :-) –

+0

Ваш вопрос не очень ясен, поэтому, пожалуйста, подумайте об улучшении его. Что вы хотите достичь? Где проблема? –

+0

@Simon Davies, я обновил свой вопрос –

ответ

3

Как говорит об ошибке, когда вы имеете дело с компонентами, данные должны быть определены как функция, которая возвращает объект - так:

data() { 
    return { 
    store_id: '' 
    } 
} 
+0

Когда я нажимаю кнопку «Избранное», на консоли существует такая ошибка: https://postimg.org/image/intx89aer/ –

+0

Это связано с ошибкой на бэкэнд - в основном вы не отправляете правильные данные в точку enpoint или как ошибка говорит об унаследованном - поэтому, если у вас есть какой-либо авторизации в вашем приложении, убедитесь, что вы вошли в систему –

+0

В браузере Firefox нет ошибок. но в браузере есть ошибка. –

1

ваши данные должны быть установлены как:

data() { 
    return { 
     store_id: '' 
    } 
    } 

Как его компонент? Попробуй это?

+0

Это неверный пример - данные по-прежнему объект, он должен быть функцией. –

+0

спасибо, что он бросил его и забыл() :-) спасибо –

+0

@Simon Davies, Когда я нажимаю кнопку «Избранное», в консоли есть такая ошибка: https://postimg.org/image/intx89aer/ –