利用vue写filter时 当传入是一个对象时注意
vue或angular 写filter时,传入的是对象时一定注意,不能直接改变对象的值,因为在使用该filter的页面上,若传入的对象其他值发生变化,该filter也会重新运行,这样可能会报错,如下例子会产生undefined的对象值
下面的例子是利用vue vant ,arrtoArr是将['0','2']---->'问题1,问题3'的格式在页面中显示
页面
<div v-for="item,index in list" v-if="list.length!=0">
{{item.parstr | filtertest}}:{{item.pararr | arrtoArr}} //item对象的count值变化也会触发两个filter的变化
<span class="count">
<span @click="updateCount('deduce',index)">
<i class="van-icon van-icon-reduce-o"></i>
</span>
{{item.count}}
<span @click="updateCount('add',index)">
<i class="van-icon van-icon-add-o"></i>
</span>
</span>
</div>
页面对应的数据和方法
data:{
return {
list:[
{
parsrt:1,
pararr:['2','1'],
desc:'',
count:0
},
{
parstr:2,
pararr:['1','4','5'],
desc:'',
count:0
}
]
}
} ,
methods:{
updateCount(oprt,index){
if(oprt=='reduce'){
if(this.serviceList[index].count<=1){
this.$dialog.confirm({
title: '警告',
message: '确认删除么'
}).then(() => {
this.serviceList.splice(index,1);
}).catch(() => {
});
}else{
this.serviceList[index].count--; //一定注意此处serviceList的内部的某一个对象的count变化了,上面页面的两个filter都会重新运行
}
}else{
this.serviceList[index].count++;
}
}
}
filter.js
Vue.filter('arrtoArr',function(par){
var comparlist = {
0:'问题1',
1:'问题2',
2:'问题3',
3:'问题4',
4:'问题5',
5:'问题6',
6:'问题7',
7:'问题8',
100:'问题9'
}
var arr = []
if(par==undefined||par.length<1){
return ''
}else{
for(var i=0;i<par.length;i++){
var tt = par[i] //此处不可直接改变其par参数的值
arr.push(comparlist[tt])
}
return arr.join(',');
}
})
利用vue写filter时 当传入是一个对象时注意的更多相关文章
- 利用vue写一个复选框的组件
HTML <multicheck :source=tlist :busValue='objInfo.tt' @getTt="getTtInfo"></multic ...
- vue实战(一):利用vue与ajax实现增删改查
vue实战(一):利用vue与ajax实现增删改查: <%@ page pageEncoding="UTF-8" language="java" %> ...
- vue中echarts 在element-ui的tab 切换时 width 为100px 时的解决方式
最近在项目中遇到了这种情况,需要在tab控件上渲染多个echart图标,然后切换查看时,发现图表的宽度不正确 原因:在页面进行加载时,隐藏的图表找不到对应的div大小,所以默认给了一个大小.所以要做的 ...
- .NET Core的日志[5]:利用TraceSource写日志
从微软推出第一个版本的.NET Framework的时候,就在“System.Diagnostics”命名空间中提供了Debug和Trace两个类帮助我们完成针对调试和跟踪信息的日志记录.在.NET ...
- 利用Vue.js实现拼图游戏
之前写过一篇<基于Vue.js的表格分页组件>的文章,主要介绍了Vue组件的编写方法,有兴趣的可以访问这里进行阅读:http://www.cnblogs.com/luozhihao/p/5 ...
- 利用redis写webshell
redis和mongodb我之所见 最近自己在做一些个人的小创作.小项目,其中用到了mongodb和redis,最初可能对这二者没有深入的认识.都是所谓的“非关系型数据库”,有什么区别么? 实际上,在 ...
- 利用maven的filter和profile实现不同环境使用不同的配制
在我们平常的java开发中,会经常使用到很多配制文件(xxx.properties,xxx.xml),而当我们在本地开发(dev),测试环境测试(test),线上生产使用(product)时,需要不停 ...
- 学了C语言,如何利用cURL写一个程序验证某个网址的有效性?
在<C程序设计伴侣>以及这几篇关于cURL的文章中,我们介绍了如何利用cURL写一个下载程序,从网络下载文件.可是当我们在用这个程序下载文件时,又遇到了新问题:如果这个网址是无效的,那么我 ...
- 利用TraceSource写日志
利用TraceSource写日志 从微软推出第一个版本的.NET Framework的时候,就在“System.Diagnostics”命名空间中提供了Debug和Trace两个类帮助我们完成针对调试 ...
随机推荐
- git基础知识
Git的两大功能 1.协作开发 2.版本控制 版本库 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都 ...
- 006-UDP用户数据报文协议
一.概述 用户数据报协议(英语:User Datagram Protocol,缩写为UDP),又称用户数据报文协议,是一个简单的面向数据报的传输层协议,正式规范为RFC 768. 在TCP/IP模型中 ...
- React篇-滚动条下移的触发在react的生命周期分析
项目的要求是一个chartUI方式的聊天显示页面,根据聊天信息的不断增加,页面需要滑动一定距离,这样能看到最新的聊天结果,这样就需要在聊天结果返回之后触发滚动条向下滚动到一定的距离,代码如下: com ...
- 小程序篇- data 数据绑定
使用wepy框架写小程序, data赋值这里不需要使用this.setData({}),例如: data:{ x:'' }, 在你为data里面的数据进行绑定的时候,是需要的. 比如data里面你定义 ...
- vue axios get请求参数为json对象 而非字符串形式
axios get请求方式 传递给后台的参数都是字符串下形式,无法传递json对象 或数组对象等 post请求方式则可以实现, 但若后台接口要求必须用get方式传递对象给后台,需要装插件,实 ...
- TCP接收缓存大小的手动调整
给出了几个可调节的参数,它们可以帮助您提高 Linux TCP/IP 栈的性能. 表 1. TCP/IP 栈性能使用的可调节内核参数 可调节的参数 默认值 选项说明 /proc/sys/net/cor ...
- Lua搜索特殊字符
local newtext = "." local index1 = string.find(newtext,"%.") 在这里,"."是通 ...
- 【LeetCode每天一题】Rotate Image(旋转矩阵)
You are given an n x n 2D matrix representing an image.Rotate the image by 90 degrees (clockwise). N ...
- git的reset的理解
git的reset的理解 1.在理解reset命令之前,先对git中涉及到的与该reset命令相关概念进行说明和解释HEAD这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交Indexind ...
- python-selenium无法调用浏览器的问题
一直有这个问题 问题:selenim不能调用浏览器 File "/Users/ligaijiang/PycharmProjects/Runoob/venv/lib/python3.7/sit ...