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. Mirai僵尸网络重出江湖

    近年数度感染数十万台路由器的僵尸网络程序Mirai,虽然原创者已经落网判刑,但是Mirai余孽却在网络上持续变种,现在安全人员发现,Mirai已经将焦点转向Linux服务器了. 安全公司Netcout ...

  2. 测试理论--web测试方法总结

    一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号.禁止直接输入特殊字符时,使 ...

  3. 51nod 多重背包问题(二进制优化)

    有N种物品,每种物品的数量为C1,C2......Cn.从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi ...

  4. storm单词计数 本地运行

    import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.HashM ...

  5. SPSS提示“列表中不同意存在字符串变量”的解决方法

    今天用SPSS对一些数据进行主成分分析,SPSS 19.0进行主成分分析的方法是:分析--降维--因子分析,可是当导入一些变量的时候.就会弹出窗体说"列表中不同意存在字符串变量", ...

  6. IT痴汉的工作现状41-亲历招投标

    2015年9月3日早7点,复兴门外大街已是车水马龙.伟仔早早的从东直门赶到这里.呼吸着首都特有的雾气,回味着昨晚与齐天的那一顿簋街麻小,想象着今天的大场面,心中不免有一丝紧张. 今天是个重要的日子,是 ...

  7. HDU 4786 Fibonacci Tree 生成树

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4786 题意:有N个节点(1 <= N <= 10^5),M条边(0 <= M <= ...

  8. JAVA多态学习2

    好啦,这里紧接着上次没说的向下转型,请读者结合上次讨论的向上转型的样例一起探讨(事实上本次代码也有加上,放心). 我们这里希望从向下转型会出现的两种基本情况进行探讨 package downcasti ...

  9. php 内置的 html 格式化/美化tidy函数 -- 让你的HTML更美观

    php 内置的 html 格式化/美化tidy函数 https://github.com/htacg/tidy-html5 # HTML 格式化 function beautify_html($htm ...

  10. Docker+Jenkins持续集成

    Docker+Jenkins持续集成 使用etcd+confd实现容器服务注册与发现   前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇 ...