При добавлении кода v-if="isOwner" должно скрывать кнопку (редактировать страницу)а у меня перестала загружаться?
вот само мод окно
<template>
<v-row justify="center">
<v-dialog v-model="modal" persistent max-width="400">
<template v-slot:activator="{ on, attrs }">
<v-btn class="warning" v-bind="attrs" v-on="on">Edit</v-btn>
</template>
<v-card>
<v-container>
<v-layout row>
<v-flex xs12>
<v-card-title>
<h1 class="text--primary">Edit ad</h1>
</v-card-title>
</v-flex>
</v-layout>
<v-divider></v-divider>
<v-layout row>
<v-flex xs12>
<v-card-text>
<v-text-field name="title" label="Title" type="text" v-model="editedTitle"></v-text-field>
<v-text-field
name="description"
label="Description"
type="text"
multi-line
v-model="editedDescription"
></v-text-field>
</v-card-text>
</v-flex>
</v-layout>
<v-divider></v-divider>
<v-layout row>
<v-flex xs12>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn @click="onCancel">Cancel</v-btn>
<v-btn class="success" @click="onSave">Save</v-btn>
</v-card-actions>
</v-flex>
</v-layout>
</v-container>
</v-card>
</v-dialog>
</v-row>
</template>
<script>
export default {
props: ["ad"],
data() {
return {
modal: false,
editedDescription: this.ad.description,
editedTitle: this.ad.title,
};
},
methods: {
onCancel() {
this.editedDescription = this.ad.description;
this.editedTitle = this.ad.title;
this.modal = false;
},
onSave() {
if (this.editedDescription !== "" && this.editedTitle !== "") {
this.$store.dispatch("updateAd", {
title: this.editedTitle,
description: this.editedDescription,
id: this.ad.id,
});
this.modal = false;
}
},
},
};
</script>
При добавлении кода v-if="isOwner" должно скрывать кнопку (редактировать страницу) для не зарегистрированных пользователей, а у меня перестала загружаться эта страница. вот ссылка на https://vuevlad.web.app/ad/-MGDAVMNA5WOU44pMm2L[введите сюда описание ссылки]1
<template>
<v-container>
<v-layout row>
<v-flex xs12>
<v-card v-if="!loading">
<v-img :src="ad.imageSrc" height="300px"></v-img>
<v-card-text>
<h1 class="text--primary">{{ad.title}}</h1>
<p>{{ad.description}}</p>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<addEditAdModal :ad="ad" v-if="isOwner"></addEditAdModal>
<app-buy-modal :ad="ad"></app-buy-modal>
</v-card-actions>
</v-card>
<div v-else class="text-xs-center">
<v-progress-circular indeterminate :size="100" :width="4" color="purple"></v-progress-circular>
</div>
</v-flex>
</v-layout>
</v-container>
</template>
<script>
import EditAdModal from "./EditAdModal";
export default {
props: ["id"],
computed: {
ad() {
const id = this.id;
return this.$store.getters.adById(id);
},
loading() {
return this.$store.getters.loading;
},
isOwner() {
return this.ad.ownerId === this.$store.getters.user.id;
},
},
components: {
addEditAdModal: EditAdModal,
},
};
Ответы (1 шт):
Автор решения: николай тамазенко
→ Ссылка
друзья ура, ответ был в добавлении вот этого
isOwner() {
let user = this.$store.getters.user;
return user && this.ad.ownerId === this.$store.getters.user.id;
},