javascript - Vue 组件只有在 Hot Reload 后才能按预期工作
问题描述
谷歌搜索了几个小时,但找不到解决方案(以及解释)。
我有与 Datatable 相关的 Vue 选择组件:
<select @change="statusChanged()" v-model="active" name="FilterStatus" id="FilterStatus" class="form-control selectp" data-placeholder="FilterStatus" tabindex="2">
<option value="all">All</option>
<option :value="true">Active</option>
<option :value="false">Inactive</option>
</select>
使用 on-change 函数“statusChanged”:
data() {
return {
active: 'all'
}
},
methods: {
...
statusChanged(){
if (this.active === true) {
$("#CustomerTable")
.DataTable()
.columns( 1 )
.search( true )
.draw();
} else if (this.active === false) {
....
}
},
我的目的只是通过选择下拉元素来更改状态。主要问题是它仅在热重载后才起作用,而不仅仅是在刷新页面时!例如:
第 1 步:我第一次加载页面 第 2 步:下拉菜单不起作用,并且值“活动”没有改变 第 3 步:我更改编辑器中的代码(无论如何),保存 -> 热重载正在触发,之后选择选项有效,Datatable 正在刷新并应用过滤器!
为什么这样?任何想法或建议如何解决它?
解决方案
我在一个新的 vue 项目中这样做并且工作正常,也许你有一个错误导致你的变量 active 不起作用(检查浏览器控制台)
<template>
<div id="app">
<select @change="statusChanged()" v-model="active" name="FilterStatus" id="FilterStatus" class="form-control selectp" data-placeholder="FilterStatus" tabindex="2">
<option value="all">All</option>
<option :value="true">Active</option>
<option :value="false">Inactive</option>
</select>
</div>
</template>
<script>
export default {
name: 'App',
data() {
return {
active: 'all'
}
},
methods: {
statusChanged(){
console.log(this.active);
}
}
}
</script>
推荐阅读
- php - 从文件夹中访问 *.txt 的内容并循环并在 smarty 模板中显示结果
- php - 在 mySQL 中创建插入选择查询的问题
- css - Bootsfaces - Accordion:将箭头更改为字形并添加字幕
- hadoop - Oozie 协调员工作的未来行动数量有限
- codeigniter - 如何通过 .htacess 文件强制将 http://example.com 自动重定向到 https://example.com
- python - python 包中的函数如何映射到正确的文件名?
- flutter - 如何将共享功能添加到下面的飞镖代码
- android - 如何检测 Android Go?
- c++ - C++ 简单的问题,但对我来说很复杂
- lua - 如何从 Lua 中的表中获取值?