【问题标题】:How to add condition in method vue.js 2?如何在方法 vue.js 2 中添加条件?
【发布时间】:2017-06-12 10:51:08
【问题描述】:

我的代码是这样的:

<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

那一步是否正确?

以及如何判断是不是喜欢标签创造条件?

更新

在控制台中存在这样的错误:

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

【问题讨论】:

  • 您遇到或尝试了哪些错误,您能再解释一下吗?另外event.target.disabled = true为什么不在点击方法@click.prevent=""vuejs.org/v2/guide/events.html上添加prevent调用:-)
  • 你的问题不是很清楚,请考虑改进一下。你想达到什么目的?真正的问题在哪里?
  • @Simon Davies,我更新了我的问题
  • @Belmin Bedak,我更新了我的问题

标签: javascript laravel-5 vue.js laravel-5.3 vuejs2


【解决方案1】:

正如错误所说,在处理组件时,应将数据定义为返回对象的函数 - 所以:

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

【讨论】:

  • 当我点击按钮收藏时,在控制台中存在这样的错误:postimg.org/image/intx89aer
  • 这是与后端相关的错误 - 基本上你没有向 enpoint 发送正确的数据或错误表示未经授权 - 所以如果你的应用程序上有任何类型的身份验证,请确保你已登录跨度>
  • 在火狐浏览器中,没有错误。但是浏览器chrome有错误
  • 好的问题是,您登录 Chrome 浏览器了吗?
  • 还没有。我很抱歉。感谢您的帮助
【解决方案2】:

您的数据应设置为:

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

作为它的一个组件?试试这个?

【讨论】:

  • 那不是正确的例子——数据仍然是对象,它应该是函数。
  • @Simon Davies,当我点击收藏按钮时,控制台中存在如下错误:postimg.org/image/intx89aer
  • 这意味着您尝试访问受 'auth 中间件保护的路由,因此您需要使用调用 ect 发送 auth 标头,使用 axios/ajax 等来调用它
  • @Simon Davies,在 Firefox 浏览器中,没有错误。但是浏览器chrome有错误
  • 是在两者中发布和工作,还是在两者中都不起作用,但只能在 chrome 中报告,如果不起作用,请尝试发布新问题等
猜你喜欢
  • 2017-08-17
  • 2017-08-24
  • 2017-07-07
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多