当前位置: 首页 > 知识库问答 >
问题:

javascript - 这样写页面选中没有生效?

公良照
2024-01-31
<div class="select-lier">          <div class="selcer">共{{brandaddlist.length}}项</div>          <el-button size="small" @click="allclick">全选</el-button>          <el-button size="small" @click="allclicbtn">反选</el-button>        </div>        <div class="change-box">          <div class="select-l" v-for="v,i in brandaddlist" :key="v.key">            <div class="chang-sel">              <div class="tyep-ore">{{v.key}}</div>              <el-button size="small" @click="selectAll(v)">全选</el-button>              <el-button size="small" @click-="invert(v)">反选</el-button>            </div>            <div class="check-box" v-for="item in v.list" :key="item.ID">              <el-checkbox                v-model="item.select"                :label="item.AdminAccount"                :checked="item.select==0?false:true"                name="type"                @change="clickcheckbox(item)"              />            </div>          </div>        </div>const allclick = async () => {        await nextTick();        brandaddlist.value.forEach((v) => {          v.list.forEach((item) => {            item.select = 1;          });        });        console.log(brandaddlist.value);      }; 这样写页面选中没有生效

这样写页面选中没有生效

共有1个答案

逑和蔼
2024-01-31

这段代码中的问题在于v.list.forEach((item) => { item.select = 1; });。这一行试图直接修改item.select的值,但是实际上并未成功。这是因为item在这里是原始数据,而不是响应式引用。

Vue 3 的 Composition API(比如 refreactive)提供了一种方式来创建响应式的数据。在你的代码中,你需要在数据被创建时使用这些函数。

你可以尝试将你的代码修改为以下形式:

import { ref, nextTick } from 'vue';export default {  setup() {    const brandaddlist = ref([      // 你的初始数据    ]);    const allclick = async () => {      await nextTick();      brandaddlist.value.forEach((v) => {        v.list.forEach((item) => {          if (!item.select) item.select = ref(0); // 确保每个 item.select 都是响应式的          item.select.value = 1; // 修改响应式引用的值        });      });      console.log(brandaddlist.value);    };    return { allclick };  }}

注意,我在这里添加了 ref(0) 来确保 item.select 是一个响应式引用。然后我使用 .value 来访问和设置这个引用的值。这样,当你修改 item.select.value 时,Vue 将知道这个值已经改变,并相应地更新 DOM。

 类似资料:
  • 问题内容: 我正在使用Django-CMS的Django项目中构建一个相当简单的应用程序,即研究项目。(这是我对项目/应用程序的首次尝试。)它的主要目的是存储各种知识资产(例如,研究人员撰写的文章,书籍等)。 问题是,当我将浏览器指向/ research /时,出现一条错误,提示表’research_journal’不存在(“ no such table”)。 我正在使用带有sqlite3数据库的

  • 问题内容: 我正在尝试使用Docker使用此存储库为AWS Lambda创建一个依赖包,但是每当我尝试运行build.sh文件时,都会收到以下消息: 没有这样的选择:–use-wheel 然后,当我尝试使用(在Docker之外)时,我被告知它已经在我的本地计算机上了。 如何在Docker容器中安装Wheel? 如果有帮助,这似乎是build.sh中出现问题的代码行: 任何帮助深表感谢! 问题答案:

  • 问题内容: 我遵循的是官方Django文档中的第一个应用程序教程,尝试保存通过管理页面进行的某些更改时出现此错误。我对此进行了一些研究,但是我能够找到的可能解决方案(例如迁移数据库)根本行不通。如果您想查看我的代码的某些特定部分,请告诉我。 以下是错误: and the traceback: 问题答案: 我自己碰到了这个问题,它似乎与https://code.djangoproject.com/t

  • 我已经尝试重新导入Maven,但没有结果。任何建议将不胜感激。

  • https://play.tailwindcss.com/sNnjkZnGWF?file=config 项目里配置了变体 为什么 当button 通过tab 获取焦点的时候 红色边框border_always样式没有生效?

  • 问题内容: 我需要像这样用javascript制作字典 我不记得确切的符号了,但是有点像: javascript中有这样的事情吗? 问题答案: 这是一篇旧文章,但我认为无论如何我都应该提供一个图解的答案。 使用javascript的对象表示法。像这样: 并访问值: 或者您可以使用javascript文字对象表示法,其中键不需要用引号引起来: