解决vue过滤器filters获取不到this对象的问题
目录
- vue过滤器filters获取不到this对象
- 原理
- 下面举个例子
- Vue filters this指向问题
- Vue实例中filter不依赖于当前vue实例上下文
vue过滤器filters获取不到this对象
原理
- 在data中定义一个属性that,把this存储到that中
- 在调用filters中的方法sum的时候将that传进去即可
下面举个例子
用filters计算data中 a+b 的值
- 注意:filters中的sum方法的第一个参数是|左边那个a,第二个参数才是括号写的that
<template> <div>{{a|sum(that)}}</div> </template> <script> export default { name: "test", data() { return { that: this, a: 1, b: 2 } }, filters: { sum(a, that) { console.log(that); return a + that.b; } }, } </script>
Vue filters this指向问题
Vue实例中filter不依赖于当前vue实例上下文
所以在filter中无法直接访问当前vue实例, 所以可以使用computed替代。
可是当遇到需要根据html文本改变,v-for的数据等情况而改变时,computed的功能就无法满足我们的需求了。
那我们就可以使用methods代替
data: { shopItemType: {} }, methods: { shopItemType2str(id){ return this.shopItemType[id]; } }
<tr v-for="shopItem in shopItems"> <td>{{shopItemType2str(shopItem.item_type)}}</td> </tr>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Vue 过滤器filters及基本用法
1.示例代码 采用vue单文件组件,使用moment插件格式化日期 <template> <div> <h1>{{date | dateFormat}}</h1> </div> </template> <script> import moment from 'moment'; import 'moment/locale/zh-cn'; moment.locale('zh-cn'); export default { dat
-
在Vue methods中调用filters里的过滤器实例
需求:vue中,除了在模板中使用过滤器,有时候,methods中也需要使用filters中的过滤器, 网友hongz1125提出的解决办法: this.$options.filters[filter](...args) //这种方法很简单,也很实用 下面是我的方法,有点复杂.建议使用上面网友说的方法. filters: { formatScore(score) { if (score < 20) { score = '不合格'; } else if (score >= 20 &&
-
vue中过滤器filter的讲解
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con
-
Vue3不支持Filters过滤器的问题
filters过滤器已从Vue 3.0中删除,不再支持. 2.x 语法 在2.x中,开发人员可以使用过滤器来处理常见的文本格式. <template> <h1>Bank Account Balance</h1> <p>{{ accountBalance | currencyUSD }}</p> </template> <script> export default { props: { accountBalance: {
-
解决vue过滤器filters获取不到this对象的问题
目录 vue过滤器filters获取不到this对象 原理 下面举个例子 Vue filters this指向问题 Vue实例中filter不依赖于当前vue实例上下文 vue过滤器filters获取不到this对象 原理 在data中定义一个属性that,把this存储到that中 在调用filters中的方法sum的时候将that传进去即可 下面举个例子 用filters计算data中 a+b 的值 注意:filters中的sum方法的第一个参数是|左边那个a,第二个参数才是括号写的that
-
Vue过滤器filters的用法及时间戳转换问题
目录 一.速识概念: 二.局部过滤器: 三.全局过滤器: 四.扩展: 五.总结: 本文分享自华为云社区<三分钟掌握Vue过滤器filters及时间戳转换>,作者:北极光之夜.. 一.速识概念: 大家好呀,Vue的filters过滤器是比较常见的一个知识点,下面我将结合时间戳转换的例子带你快速了解filters的用法~ 按照官方的活来说,Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)
-
vue自定义filters过滤器
官方给出 Vue.filters(id , [definition]) //id {string} //definition {function} 详情查看 在项目中我们如果有多个filters,那么我怎么一次注册,全局可用,我们在项目里新建一个filters文件夹,如下,index.js是出口文件,readMore是一个对字符串做处理的过滤器 文件目录 下面贴上代码: //index.js // 引入所有的过滤函数 import readMore from './readMore'; // 导
-
利用SpringMVC过滤器解决vue跨域请求的问题
之前写过通过注释的方法解决跨域请求的方法,需要每次都在controll类使用注解,这次通过springmvc的拦截器解决: 继承SpringMVC的类HandlerInterceptor重写preHandle方法,这个方法会在到达 controll之前调用,如下 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-
解决vue组件props传值对象获取不到的问题
先说问题,父组件利用props向子组件传值,浏览器 console 有这个值,但是获取不到内部的属性,困了我3个小时,真的** personal console 以下为原代码 1.home.vue(父组件)--personal是被传的参数 <!--子组件--> <form-picker class="form-picker" :personal="personal" > </form-picker> export default
-
解决Vue axios post请求,后台获取不到数据的问题方法
最近做项目,需要用到vue,后台是php,第一次使用axios进行请求,本以为同ajax一样,会很简单,但是结果往往不让人满意啊,get请求很简单,这里就不说了,主要说下 post请求方式. 使用axios进行post请求,后台居然接收不到数据,这就纳闷了,于是网上一顿搜索,现在将所用的解决办法给大家说下: 1.new URLSearchParams方式 起初使用params.append("属性名":属性值)的方式,对于简单的数据传递这样是没有问题的,后台可以正常接收数据,但我发现一
-
解决vue项目获取dom元素宽高总是不准确问题
dom元素内部内容是动态的,重置数据后直接获取宽高总是不准确: this.$refs.editor[0].offsetHeight; 原因:重置数据后获取dom元素宽高时,dom元素还未渲染完毕: 解决方法:利用Vue.nectTick(callback) this.$nextTick(() => { this.$refs.editor[0].offsetHeight; }) Vue.nectTick() 是在下次DOM更新循环结束之后执行延迟回调 补充知识:vue 获取 指定元素的高度宽度等(
-
Vue封装全局过滤器Filters的步骤
(PS:本文代码在vue-cli3构建的基础vue项目之上进行编写:vue create my-project) 在前后端分离的项目中,经常会有后台返回的数据需要经过处理才能显示到页面上的场景. 使用最多的场景就是日期/时间.数字.字符串的格式化处理,实际业务中可能还有更复杂的数据处理逻辑. 下面就拿封装全局的处理数字和字符串的 filter 来展示 vue 如何 封装全局filter 并统一处理. 一.定义/封装过滤器 在 src目录 下新建 filters目录 用来专门存放全局过滤器,如果项
-
vue中使用过滤器filters的this为undefined的问题
目录 使用过滤器filters的this为undefined vue filter过滤器的用法 使用过滤器filters的this为undefined vue中的过滤器更偏向于对文本数据的转化,而不能依赖this上下文,如果需要使用到上下文this我们应该使用computed计算属性的或者一个method方法 vue filter过滤器的用法 {undefined{ args | filterFun }} |是管道符 用法如下 {{ time | formatDate }} 过滤器中 filte
随机推荐
- JavaScript的Ext JS框架中的GridPanel组件使用指南
- 星外PHP4升级到PHP5的注意事项与方法
- Java中正则表达式的使用和详解(上)
- Python WXPY实现微信监控报警功能的代码
- 基于PHP导出Excel的小经验 完美解决乱码问题
- php生成无限栏目树
- C#文件目录操作方法汇总
- Android SimpleAdapter适配器使用详解
- nodejs获取微信小程序带参数二维码实现代码
- 详解C语言中const关键字的用法
- 细说javascript函数从函数的构成开始
- ASP.NET数据绑定控件详解
- Android Fragment中使用SurfaceView切换时闪一下黑屏的解决办法
- apache和php之间协同工作的配置经验分享
- 图形数字验证代码
- 热点网络为您提供50M免费FTP空间
- Python常用字符串替换函数strip、replace及sub用法示例
- 使用vue完成微信公众号网页小记(推荐)
- win7+Python3.5下scrapy的安装方法
- java 实现websocket的两种方式实例详解