methods:{
add(){
var car = { id: this.id, name: this.name, ctime: new Date()};
this.list.push(car);
}, del(id){
this.list.splice(id,1); // 数组里删除, 用splice remove是操作dom的
}, search(keywords){ // 做搜索要明确是从哪个里面去搜。
var newList = [];
// if(this.list.name.indexOf(keywords) != -1){
// list里面有多个对象, 应该是某个对象的name符合关键字, 即 item.name.indexOf
// this.list.push(); // 应该是push到新数组里面去。 newList.push(item);
// };
this.list.forEach(item => { // 遍历 list 里的每个对象 // 再看一下箭头函数的课
if (item.name.indexOf(keywords) != -1){
newList.push(item);
};
});
return newList;
},
}
<body>
<div id="app">
<!--
本例要记的
bootstrap类 form-inline 水平排列表单。
bootstrap类 form-control
findIndex();
splice();
push();
some();
padStart ?? 补 0
filter();
forEach();
VNode 是什么?? methods 里面 del(id); 部分要再看一下。
自定义指令 v-focus
-->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">添加品牌</h3>
</div>
<div class="panel-body form-inline" >
<label>
Id:<input type="text" class="form-control" v-model="id">
</label>
<label>
Name:<input type="text" class="form-control" v-model="name" @keyup.enter="add();">
</label>
<input type="button" value="添加" class="btn btn-primary" @click="add();">
<label>
搜索名称关键字:<input type="text" class="form-control" v-focus v-model="keywords">
</label>
</div>
</div> <table class="table table-hover table-bordered table-striped" >
<thead>
<tr>
<th>ID</th>
<th>NAME</th>
<th>Ctime</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr v-for="item in list" :key="item.id">
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.ctime | dateFormat}}</td>
<td><a href="javascript:;" @click="del();">删除</a></td>
</tr>
</tbody>
</table>
</div> <script>
Vue.filter('dateFormat', function(dateStr, pattern=''){
var dt = new Date(dateStr);
var y = dt.getFullYear();
var m = dt.getMonth() +1;
var d = dt.getDate(); return `${y}-${m}-${d}`;
}); Vue.directive('focus', {
inserted: function (el) {
el.focus();
},
}); var vm = new Vue({
el:'#app',
data:{
id: '',
name: '',
keywords: '',
list:[
{id:1, name:'宝马', ctime:new Date()}, // 这里要现在外面定义 id name ctime
{id:2, name:'奔驰', ctime:new Date()}
]
},
methods:{
add(){
var car = { id: this.id, name: this.name, ctime: new Date() };
this.list.push(car);
// 直接push到list就可以,不用管怎么加到表格里。v-for会自动渲染。
this.id = this.name = '';
},
del(id) { // 1. 如何根据Id,找到要删除这一项的索引
// 2. 如果找到索引了,直接调用 数组的 splice 方法 /* this.list.some((item, i) => {
if (item.id == id) {
this.list.splice(i, 1)
// 在 数组的 some 方法中,如果 return true,就会立即终止这个数组的后续循环
return true;
}
}) */ var index = this.list.findIndex(item => {
if (item.id == id) {
return true;
}
});
// console.log(index)
this.list.splice(index, 1);
},
search(keywords) {
// search是在 列表里, 所以要联想到调用list[] 数组筛选的方法。
/* var newList = []
this.list.forEach(item => {
if (item.name.indexOf(keywords) != -1) {
newList.push(item)
}
})
return newList */ // 直接return 后面整个函数的返回值。 记住这个新用法。
// 省去了开头的var newList 和 末尾的 return newList。 直接不需要中间变量。
return this.list.filter(item => {
if (item.name.includes(keywords)) {
return item;
};
});
// return newList
}
}
});
</script>
</body>

VUE错误记录 - 品牌后台练习 search(); 数组 splice forEach push 箭头函数的更多相关文章

  1. vue 错误记录

    1.错误信息: You may use special comments to disable some warnings.Use // eslint-disable-next-line to ign ...

  2. Vue 错误记录:Cannot read property 'beforeRouteEnter' of undefined

    点击某路由链接,页面提示: Cannot read property 'beforeRouteEnter' of undefined 查看代码并无手写beforeRouterEnter设置, 把页面内 ...

  3. VUE错误记录 - 小球模拟购物车

    <body> <div id="app"> <input type="button" value="Add to Car ...

  4. vue错误记录

    启动时报错如下 D:\QQFile\\FileRecv\industry_vue>cnpm run dev > vue_demo@ dev D:\QQFile\\FileRecv\indu ...

  5. 21.VUE学习之-操作data里的数组变异方法push&unshit&pop&shift的实例应用讲解

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. vue中如何实现后台管理系统的权限控制

    vuejs单页应用的权限管理实践 一.前言 在广告机项目中,角色的权限管理是卡了挺久的一个难点.首先我们确定的权限控制分为两大部分,其中根据粒的大小分的更细: 接口访问的权限控制 页面的权限控制 菜单 ...

  7. 1.使用Vue.js实现品牌案例添加功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. vue_shop(基于vue电商管理后台网站)

    vue_shop 目录 vue_shop day01 实现登录功能 项目预开发处理 Login.vue完整代码: 处理步骤: 添加element-ui的表单组件 添加第三方字体: 添加表单验证 导入a ...

  9. Vue 问题记录

    Vue 问题记录 汇总日常开发中遇到的关于vue的问题 VeeValidator 语言设置 校验消息默认是英文的,定义中文或其他语言的错误提示消息 import VeeValidate from 'v ...

随机推荐

  1. excel导入数据的

    .aspx 文件 <form id="form1" runat="server"> <div> <asp:FileUpload I ...

  2. 威联通212P 在admin用户密码正确情况下仍然无法登录WEB页面解决办法

    *登录 telnet 执行以下语句: [~] # cp /etc/default_config/passwd /mnt/HDA_ROOT/.config/passwd[~] # cp /etc/def ...

  3. 紫书 例题 9-7 UVa 11584 (线性结构上的动态规划)

    这道题判断回文串的方法非常的秀! 这里用到了记忆化搜索,因为会有很多重复 同时用kase来区分每一组数据 然后还有用递归来判断回文,很简洁 然后这种线性结构的动态规划的题,就是把 当前的这个数组分成两 ...

  4. 通用查询实现方案(可用于DDD)[附源码] -- 设计思路

    原文:通用查询实现方案(可用于DDD)[附源码] -- 设计思路 [声明] 写作不易,转载请注明出处(http://www.cnblogs.com/wiseant/p/3988592.html).   ...

  5. LRJ入门经典-0905邮票和信封305

    原题 LRJ入门经典-0905邮票和信封305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 假定一张信封最多贴5张邮票,如 ...

  6. 【Uva 10723】Cyborg Genes

    [Link]: [Description] 给你两个串s1,s2; 让你生成一个串S; 使得s1和s2都是S的子列; 要求S最短; 求S的不同方案个数; [Solution] 设两个串的长度分别为n1 ...

  7. 自考之SDT

    软件开发工具(Soft Development Tools)是一本让程序猿了解自己自己所使用工具的书,作为一个刚刚接触编程的小菜鸟.计划工具.分析工具.设计工具.尽管用的都不是非常多,但也有一个概念了 ...

  8. 用Shell脚本过滤Hadoop中不能訪问的节点

    近期使用的一个集群hp1,由于维护集群的人不给力.节点总是过一段时间就掉一两个.今天发现重新启动hadoop时,HDFS已经进入保护模式了. 决定把slaves节点中的无法訪问的节点所有过滤掉.所以写 ...

  9. 1.STL list

    初始化一个链表 list<,,,, }; 链表排序 mylist.sort(); 链表反转 mylist.reverse(); 链表删除头部和尾部 mylist.pop_back();//删除尾 ...

  10. #学习笔记#——JavaScript 数组部分编程(三)

    3.在数组 arr 末尾添加元素 item.不要直接修改数组 arr,结果返回新的数组 主要考察数组的concat方法,代码如下: arr.concat(item); concat 方法不修改原数组. ...