vuejs2 相关问题

将此标记用于特定于Vue.js版本2的问题,这是一个用于构建用户界面的开源,渐进式Javascript框架。

如何在 vue.js 中更新多选或日期等数据?

我是 vue.js 的新手。我写这个是为了编辑数据 我是 vue.js 新手。我写这个是为了编辑数据 <i class="mdi mdi-pencil" @click.prevent="$bvModal.show(`Rel${holiday.id}`)" ></i> <b-modal :id="`Rel${holiday.id}`" ref="modal" title="Update holiday" centered hide-footer> <EditModal cardTitle="Update holiday" description="Update holiday" :holidayObject="holiday"/> </b-modal> 我在文件 edit-modal.vue 中写入模态,并为表单编写此内容: <form class="needs-validation" @submit.prevent="UpdateFormSubmit(holidayObject.id)"> <div class="row"> <div class="col-md-6"> <div class="mb-3"> <label for="validationCustom01">Comments</label> <b-form-input id="validationCustom01" type="text" class="form-control" placeholder="Comments" v-model="holidayComments" :value="holidayObject.comments" /> </div> <div class="mb-3"> <label class="mt-3">Holiday type*</label> <multiselect required id="validationCustom02" v-model="holidayTypeValue" :options="holidayTypesOptions" placeholder="choose type" selectLabel="type choised" selectedLabel="choosed" deselectLabel="by choice" :value="holidayObject.holiday_type_name" ></multiselect> </div> </div> <div class="col-md-12"> <div class="row"> <div class="col-md-12"> <div class="mb-3"> <label class="mt-3">From*</label> <b-form-input id="validationCustom03" v-model="startDate" type="date" placeholder="DD-MM-YYYY" format="DD-MM-YYYY" autocomplete="off" :value="holidayObject.holidays_start_date" ></b-form-input> </div> </div> <div class="col-md-12"> <div class="mb-3"> <label class="mt-3">To*</label> <b-form-input id="validationCustom04" v-model="endDate" type="date" placeholder="DD-MM-YYYY" format="DD-MM-YYYY" autocomplete="off" :value="holidayObject.holidays_end_date" ></b-form-input> </div> </div> </div> </div> </div> <button class="btn btn-primary" type="submit"> Submit </button> </form> 我写了这个ins脚本 import session from "../../../../api/session"; import Multiselect from "vue-multiselect"; import { eventCreate } from "../../../../eventspy"; export default { components: { Multiselect, }, props: { cardTitle: String, description: String, holidayObject: { type: Object, required: true, } }, data() { return { startDate: this.holidayObject.holidays_start_date, endDate: this.holidayObject.holidays_end_date, holidayTypes: [], holidayTypeValue: this.holidayObject.holiday_type_name, holidayComments: this.holidayObject.comments, alertShow: false, alertVariant: "", alertMsg: "" }; }, mounted() { this.fetchHolidayTypes(); }, computed: { holidayTypesOptions() { return this.holidayTypes.map((e) => e.title); }, }, methods: { fetchHolidayTypes() { session.get("api/holidays/holiday-type-list/").then((resp) => { this.holidayTypes = resp.data; }); }, async UpdateFormSubmit(holidayID) { if (!this.holidayTypeValue) { alert('Input the holiday type.'); return; } if (!this.startDate || !this.endDate) { alert('Input the dates'); return; } if (this.startDate > this.endDate) { alert('end date should be after start date'); return; } // this.$refs["modal"][0].hide(); const holidayTypesId = this.holidayTypes .filter((e) => e.title === this.holidayTypeValue) .map((item) => item.id)[0]; console.log("holiday type id",holidayTypesId) await session .put(`api/person/holiday/${holidayID}/actions/`, { holidays_start_date: this.startDate, holidays_end_date: this.endDate, comments: this.holidayComments, person: this.$route.params.id, holiday_type_name: this.holidayTypeValue }) .then(() => { this.alertShow = !this.alertShow; this.alertVariant = 'success'; this.alertMsg = 'data updated'; setTimeout(() => { this.$bvModal.hide(`Rel${holidayID}`); }, 1500); eventCreate(`comments: ${this.holidayObject.comments}, holiday_type_name: ${this.holidayObject.holiday_type_name}, holiday_start_date: ${this.holidayObject.holidays_start_date}, holiday_end_date: ${this.holidayObject.holidays_end_date}, ------------------------------------------ comments: ${this.holidayComments}, holiday_type_name: ${this.holidayTypeValue}, holiday_start_date: ${this.startDate}, holiday_end_date: ${this.endDate}`,2); }) .catch((e) => { this.alertShow = !this.alertShow; this.alertVariant = 'danger'; this.alertMsg = e.response.data; }); }, } } 我的问题是,当我更改假期类型时,假期类型不会更改,而当我更改日期时,日期仅在刷新页面后才更改。这有什么问题吗? 我设法在 editModal 中使用此更新数据而无需刷新页面 setTimeout(() => { this.$bvModal.hide(`Rel${holidayID}`); this.$emit("holidayUpdated"); }, 1500); 还有这个 holidayUpdated(holidayID){ this.$bvModal.hide(`Rel${holidayID}`); this.fetchPersonHolidays(); } 但我也有多选更新的问题

回答 1 投票 0

如何将 ref 传递给 props?

我有一个应该传递给 props 的 ref,但是当我这样做时,ref 在子组件中未定义 父级.vue 目标 我有一个应该传递给 props 的 ref ,但是当我这样做时 ref 在子组件中未定义 parent.vue <div ref="target">target</div> <cmp :target="$refs.target" /> cmp.vue mounted() { console.log("target:", this.target); // undefined } 示例:codesanbox 热模块更换后目标正确 我不确定是否将其作为道具传递,但您始终可以在子组件中执行此操作。 console.log(this.$parent.$refs.target); 更多信息请参见文档。 这是另一种做事方式(确实更干净)。 App.vue <template> <div id="app"> <div ref="target">target</div> <cmp :getScreenRef="() => $refs['target']" /> </div> </template> <script> import Cmp from "./components/cmp.vue"; export default { name: "App", components: { Cmp, }, }; </script> <style> #app { font-family: "Avenir", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style> cmp.vue <template> <div> qwe <br /> <button @click="logTarget">click me</button> </div> </template> <script> export default { inheritAttrs: true, data() { return { screenRef: "", }; }, props: { getScreenRef: { type: Function, default: () => ({}), }, }, methods: { logTarget() { console.log("target:", this.screenRef); }, }, mounted() { this.screenRef = this.getScreenRef(); this.$nextTick(function () { console.log("here?", this.screenRef); }); }, }; </script> 归功于这个答案。

回答 1 投票 0

Vuetify 2 v 菜单左侧 | (Vuetivy 3 替补)

我正在尝试制作一个 Vue&Vuetify 应用程序,并且我一直在寻找一种方法使我的菜单下拉菜单位于左侧 标题下拉中心居中对齐 在 vuetify 3.0 中我们可以使用“位置”,但是这个

回答 1 投票 0

正确使用 click:outside 和 vuetify 对话框

我有一个 v 对话框,可以在需要时弹出日期选择器。为了展示它,我将一个值与 v-model 绑定。我使用 click:outside 事件来触发应该关闭它的函数,一旦我...

回答 2 投票 0

有没有办法将组件(同时设置其属性)v-bind 作为另一个组件的属性,如下所示

这就是我想要实现的目标。我想提供 MyParentComponent 一个子组件作为项目...

回答 1 投票 0

Vue js 2 如何通过替换当前数组 prop 将过滤后的数组从父组件返回到子组件

我正在使用 Vuejs 2。我有一个子组件,我从中发出一个事件, 子代码 this.$emit("remove-blocked-user-posts",BlockedUserName); 在父级中,我有后数组道具...

回答 1 投票 0

如何使用导航选项卡设置活动类别

我使用 Bootstrap 3 导航选项卡组件作为我的主导航栏,但我不知道如何基于类绑定设置活动菜单。 在任何按钮内部显示下拉导航/

回答 1 投票 0

路由器链接到带有参数的路径

我正在尝试使用 vue-router 转到我的 vue 应用程序中的 UserDetail 路径。 我的路线是: 常量路由 = [ { 路径: '/users', 组件: UserList }, { 路径:'/users/:user_id',组件:UserDetai...

回答 1 投票 0

如何在三个不同的div元素上设置ref,然后访问这些元素的数组?

我想要访问三个 div 元素。我在所有三个 div 上设置了相同的“ref”值,但是当尝试在 Vue 中检索这些元素时,“elements”变量为空。我期待什么

回答 1 投票 0

如何在Vue2项目中使用Vue3组件?

我有一个Vue2+JS项目,想添加一个聊天组件,但是我发现了一些使用Vue3+ts编写的开源项目。我的Proje中应该如何使用Vue3开发的组件...

回答 1 投票 0

Vuex 与 TypeScript 映射函数

我的状态(游戏命名空间)有一个接口,如下所示: 接口游戏状态{ 选定的选项卡:数字; 超时:数量; 小吃栏:布尔值; 文本:字符串; 完成任务:nu...

回答 5 投票 0

如何切换 v-if

我正在尝试在 Vue.js 导航栏中的两个组件之间切换。但是当我调用切换函数时,活动的值正在改变,但是显示的组件却没有改变。 这是我的应用程序......

回答 1 投票 0

如何在每个页面创建完成后调用js函数?

在我的 Vue2 应用程序中,在每个 .vue 文件的 created() 方法中调用 JavaScript 函数非常容易。不想在每个文件中都执行此操作,我是否可以在创建时调用 JS 函数(或更多...

回答 1 投票 0

如何对 2 个值进行 v 建模?

我使用的是 buefy 组件,有一个名为 v-model 的属性,它将值绑定到输入字段 现在我想将全名绑定到字段中,但数据包含...

回答 4 投票 0

在 Vue.js 单文件组件中导入外部 Angular.js 库

我在 Vue.js 中有以下单文件组件。 质粒标签本来是由 angularplasmid.complete.min.js 文件渲染的,但由于某种原因没有渲染。这是正确的导入方式吗...

回答 2 投票 0

尝试让 Bootstrap 4 导航栏折叠在 Vue 中工作

我正在尝试使引导导航栏折叠在移动设备上工作,因为它根本不起作用。请不要在代码中提供其他依赖项,例如 vue-bootstrap 或实现 jquery...

回答 2 投票 0

Vue.js 和 vuex:this.$store 未定义

我已经阅读了类似标题的问题,但由于其复杂性我无法理解它们。我认为使用我的代码会更容易为我找到解决方案。我只会包括相关...

回答 5 投票 0

如何使用模块联合在Vue2中连接Vue3?

我正在尝试在 vue2 主机服务器上构建联邦 vue3 远程服务器,这可能吗? 我已经证实相反的情况是可能的。 vue3 中的 vue2 可以工作,但 vue2 中的 vue3 不能工作 有没有...

回答 1 投票 0

导航抽屉意外打开

我是 Vue 2 的新手,并试图找出导航抽屉为什么会这样。以下代码笔包含一个小导航。可以使用 V 形图标打开和关闭。这是...

回答 1 投票 0

使用 v-for 引导 vueJS 表

所以在我的项目中我遇到了一个问题, 所以我想做的是,我在这个对象中有一个用户(对象)列表,我有一个属性 teamId(从 api 端点调用),我必须...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.