<el-col :span="18"> <el-button v-for="(item, index) in getTopButtons" :key="index" :type="item.type" :title="item.title" :disabled="typeof item.disabled === 'function' ? item.disabled() : item.disabled" :class="typeof item.class === 'function' ? item.class() : item.class" :loading="typeof item.loading === 'function' ? item.loading(item) : item.loading" v-bind="{ ...item.bind }" @click="item.func && item.func(item)" > <i v-if="item.icon" :class="renderIcon(item, scope)" />{{ item.name }}</el-button > <upload-button v-btn="'fund-debt-bill-import'" style="margin: 0 10px" accept=".xls,.xlsx" button-text="导入" :request-config="{ apiMod: 'debt-side-deposit', apiName: 'importDepositInfo', headers: { 'Content-Type': 'multipart/form-data', timeout: 0, repeatRequestCancel: true } }" @result="getFileInfo" ></upload-button> </el-col>
这是代码,逻辑是由于加了按钮权限检查,导致页面加载的时候自定义的组件upload-button被删除了,删除之后getTopButtons变化了,此时页面没有重新渲染。权限检查代码如下:
Vue.directive('btn', { inserted(el, binding) { const btnPermission = store.getters.permissionsButtons || [] if (binding.value) { if (!btnPermission.includes(binding.value)) { console.log('el.parentNode', el.parentNode) console.log('el', el) debugger el.parentNode.removeChild(el) } } } })
以下是getTopButtons的代码,是计算属性:
// 检查top button权限 getTopButtons() { if (process.env.NODE_ENV !== 'production' && this?.$store?.state?.user?.userName === 'admin') { return this.topButtons } else { const buttons = [] if (this.topButtons.length) { this.topButtons.forEach(button => { const hasPermission = !button.requireAuth || this.buttonAuths.some(auth => { return button.resCode === auth }) if (hasPermission) buttons.push(button) }) } return buttons } },
vue是虚拟dom,你直接操作dom,虚拟dom不知道,视图肯定不会更新试试用v-if:
computed: { shouldShowButton() { const btnPermission = store.getters.permissionsButtons || []; return btnPermission.includes(this.buttonPermissionValue); }}<el-button v-if="shouldShowButton" ...> ...</el-button>
为什么在刷新页面后重新提交 去http://qass.im/message-envelope/ 并上传任何文件,但仅限文本"gif","jpeg","jpg","png","zip","pdf","docx","rar","txt" 上传后点击F5按钮刷新页面 现在重新提交并重新上传文件! 为什么呢? 我想在上传文件后禁用重新提交而不使用jquery
问题内容: 在我的本地路由http:// localhost:9000 /#/ deviceDetail /中, 我有一个控制器来管理该视图。在进入该视图之前,我将一些变量设置为( 例如)。 一旦进入该视图,我就可以访问仪表盘属性,但是例如当我用键刷新页面时,该属性仪表盘就会丢失。 我试图将localSave变量保存,但是该方法遇到了循环引用问题。 有什么技巧可以解决吗? 问题答案: Angula
使用laravel 做一个展示大屏项目,后台的数据变化时,如何让前端的页面自动刷新.我想到的办法是使用laravel livewire组件. 具体代码如下: http/livewire/show.php(控制器代码) 前端页面 views/home.blade.php views/livewire/show.blade.php 后台数据变动时,删除\修改\添加, 前端数据都不自动变化,我哪里出问题
typescript里面有一个属性 初始化的时候不会被检测,忘记是哪个了 const messageData:IMessageData[] = ref([]) 印象里是在 messageData:IMessageData[] 中间加入 <pXXXX>的属性,初始化的时候不赋值也不会飘红
使用浏览器打开网址的时候网站的文档文件(index.html)会直接从缓存中读取(强缓存),不会发起请求,而之后再从这个页面点击刷新按钮时就不会直接从缓存中读取了,而是进行协商缓存,如果文件发生改变了则会去获取最新的文件。 由于初次进入页面的时候直接从缓存中读取,所以导致了就算服务器上的文件改变了浏览器也不会更新,我希望可以在第一次进入浏览器的时候就进行协商缓存,如果文件发生了变化就重新请求资源。