重置星级组件VUE JS

时间:2018-04-23 04:21:06

标签: javascript vuejs2

我在vue js中使用星级评级插件,我使用v-model来显示db的评级。一切正常,因为当用户没有登录并且他/她试图评价它显示错误“登录到率”,但星星不重置为db值而是显示未登录用户的评级。目前在错误消息后我正在刷新整个页面。有没有一种简单的方法来重置星星而不是刷新整个页面?

 :show-rating="false" @rating-selected="setRating" v-model="rating"
                         v-bind:star-size="20"

上面是开始评级,点击它时调用一个函数,我正在检查用户是否登录了api调用。提前谢谢。

        setRating: function (rating) {

            axios.get('/checkuser').then(response => {

                this.user = response.data;

                if (this.user === "Logout") {
                    toastr.error('Please login to rate', 'Error', {
                        positionClass: 'toast-bottom-right'
                    });
                    window.location = "/menu/" + this.menu_id;
                } else {
                    // save in to db
                }

            }).catch(error => {

                // TODO: Handle error
            });

        },

2 个答案:

答案 0 :(得分:0)

如果没有登录,则必须重置rating个对象。

setRating: function (rating) {

    axios.get('/checkuser').then(response => {
        ...
        if (this.user === "Logout") {
            ...
            this.rating = 0; <=== reset rating here (in data, not the rating parameter)
        }
        ...
    })
    ...
},

答案 1 :(得分:0)

在api调用之后使用“this.load()”设法修复它,刷新所有组件。 :)