方法使用时报错
来源:4-2 删除用户
Star3327752
2022-10-01 19:44:29
相关代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="./css/base.css"> <link rel="stylesheet" href="./css/common.css"> <link rel="stylesheet" href="./font/iconfont.css"> <link rel="stylesheet" href="./css/index.css"> <script src="./js/vue.js"></script> </head> <body> <div id="container"> <!-- 头部区域 --> <div class="header"> <span class="fl">后台管理系统</span> <ul class="fr"> <li><a href="javascript:;"><i class="iconfont icon-yonghu1"></i>个人中心</a></li> <li><a href="javascript:;"><i class="iconfont icon-tuichu"></i>退出</a></li> </ul> </div> <!-- 侧边栏 --> <div class="aside"> <div> <img class="avatar" src="./images/avatar.jpg"> <h3 class="name">云淡风轻</h3> </div> <ul class="nav"> <li> <a href="#"> <i class="iconfont icon-tongji2x"></i>数据统计 </a> </li> <li> <a href="#"> <i class="iconfont icon-ai-article"></i>文章管理 </a> </li> <li> <a href="#"> <i class="iconfont icon-lanmuguanli"></i>栏目管理 </a> </li> <li> <a href="#"> <i class="iconfont icon-pinglun"></i>评论管理 </a> </li> <li class="active"> <a href="#"> <i class="iconfont icon-yonghu"></i>用户管理 </a> </li> <li> <a href="#"> <i class="iconfont icon-shezhi"></i>系统设置 </a> </li> </ul> </div> <!-- 内容区 --> <div class="main"> <div class="title"> <h1>用户管理</h1> </div> <!-- 用户添加栏目--> <div class="form fl"> <form> <h3>添加新用户</h3> <div class="form-group"> <label>姓名</label> <input class="form-control" type="text" v-model="user.name"> </div> <div class="form-group"> <label>昵称</label> <input class="form-control" type="text" v-model="user.nickname"> </div> <div class="form-group"> <label>性别</label> <input class="form-control" type="text" v-model="user.gender"> </div> <div class="form-group"> <button class="btn-primary" type="button" @click="handle">确定</button> </div> </form> </div> <!-- 用户列表栏目--> <div class="table fl"> <table width="600"> <caption><h3>用户列表</h3></caption> <thead> <tr> <th><input type="checkbox"></th> <th>id</th> <th>姓名</th> <th>昵称</th> <th>性别</th> <th>操作</th> </tr> </thead> <tbody id="app"> <tr v-for="item in list" :key="item.id"> <td class="td-center"><input type="checkbox"></td> <td>{{item.id}}</td> <td>{{item.name}}</td> <td>{{item.nickname}}</td> <td>{{item.gender}}</td> <td> <a @click="edit(item.id)" href="javascript:;" class="btn btn-edit" style="margin-right: 8px;">编辑</a> <a @click="del(item.id)" href="javascript:;" class="btn btn-delete">删除</a> </td> </tr> </tbody> </table> </div> </div> </div> <script> //添加表格 Vue.createApp({ data(){ return{ list:[ { id: 1, name: 'Lux', nickname: '光辉女郎', gender: '女' }, { id: 2, name: 'Jax', nickname: '武器大师', gender: '男' }, { id: 3, name: 'Ashe', nickname: '寒冰射手', gender: '女' }, { id: 4, name: 'VN', nickname: '暗夜猎手', gender: '女' }, { id: 5, name: 'Raze', nickname: '符文法师', gender: '男' } ] } }, methods:{ del(id){ console.log(id) //通过id找到list里面的这一行,然后咨询是否确认删除 //确认之后删掉这一行,取消则return let index= list.findIndex(item =>{ return item.id=id }) console.log(index) } } } ).mount("#app") </script> <script src="js/users.js"></script> </body> </html>
问题描述:使用老师的findIndex方法去找,但是找不到具体索引值,而且会报错
问题1:报错原因是什么?
问题2:如何修改为正确代码找到索引?
补充,我使用的是Vue.create().mount()进行直接绑定,一个功能区一次绑定,在绑定区间里面书写此区域会用到的方法和属性,希望老师可以在我的代码书写逻辑上做修改
1回答
好帮手慕小小
2022-10-05
同学你好,直接书写为list是无法直接访问data(){}定义的data,直接书写为list.findIndex相当于访问的del()中的list,但del()中未定义list,故运行时会出现list is not defined,list未定义的报错提示,建议将list.findIndex修改为this.list.findIndex后再进行测试运行。
注:直接将js代码书写在html与单独定义user.js再引入到html文件中的差别不大,若实际未使用到user.js文件,建议将<script src="js/users.js"></script>删除。另在实际开发中为了便于代码的维护一般采取外部引入js文件<script src="js/users.js"></script>的方式。
祝学习愉快~
相似问题