javascript - 防止用户在 Vue Js 中有条件地更改复选框值?
问题描述
** 如果用户没有权限,如何防止用户编辑复选框值。如果用户没有编辑权限,我想显示模型。因此,禁用输入框将不起作用**
Vue.component('edit-deal',
data: function(){
showDeal: true,
hasPermission: false
},
template:`
<label>Show deals </label>
<input type="checkbox" v-model="showDeal">
`
)
解决方案
您可以在复选框上设置事件侦听器click
,如果没有权限,emit
则向父组件发送事件以显示模式:
const editdeal = Vue.component('edit-deal', {
template: '#edit-deal',
data: () => ({ showDeal: true, hasPermission: false }),
methods: {
checkPermission(event) {
if(!this.hasPermission) {
this.$emit("show_modal");
event.preventDefault();
}
},
},
});
new Vue({
el: '#app',
components: { editdeal },
data: () => ({ showModal: false }),
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div><editdeal @show_modal="showModal=true"/></div>
<div v-if="showModal">No Permission Modal</div>
</div>
<template id="edit-deal">
<div>
<label>Show deals </label>
<input type="checkbox" v-model="showDeal" @click="checkPermission">
</div>
</template>
推荐阅读
- docker - 来自守护进程的错误响应:hcsshim::CreateComputeSystem: The request is not supported
- angular - Angular 11.1.2 之后的路由器延迟加载问题
- mqtt - 尝试调试从 NodeRed 项目发送到 myqtthub 的请求
- vue.js - 从 localhost 访问 Magento 2.3.6 REST API - 被 CORS 策略阻止
- dataframe - 根据条件对同一列中的值求和
- javascript - 何时在哈巴狗中使用字符串插值,未转义!{}?
- javascript - 如何在“ABC”模式的下拉列表中对版本 ID 进行排序
- android - 如何使用 Firebase ML 套件在线翻译文本而不下载其模型?
- dart - 在飞镖中将 24 小时转换为 12 小时
- angular - 即使手动触发更改检测,ngif 标记元素有时也会返回 null