解决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 methods中调用filters里的过滤器实例
需求:vue中,除了在模板中使用过滤器,有时候,methods中也需要使用filters中的过滤器, 网友hongz1125提出的解决办法: this.$options.filters[filter](...args) //这种方法很简单,也很实用 下面是我的方法,有点复杂.建议使用上面网友说的方法. filters: { formatScore(score) { if (score < 20) { score = '不合格'; } else if (score >= 20 &&
-
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及基本用法
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中过滤器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
-
解决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
随机推荐
- Redis的主从同步解析
- Python+django实现文件下载
- GO语言实现列出目录和遍历目录的方法
- 深入理解vue.js中的v-if和v-show
- 判断iOS应用是否开放HTTP权限的方法
- input框中自动展示当前日期yyyy/mm/dd的实现方法
- C# for循环的经典案例集锦
- PHP得到mssql的存储过程的输出参数功能实现
- 屏蔽F1~F12的快捷键的js函数
- JavaScript实现复制或剪切内容到剪贴板功能的方法
- IOS文件的简单读写实例详解
- Bootstrap栅格系统学习笔记
- 在Python操作时间和日期之asctime()方法的使用
- plsql和tsql常用函数比对
- jQuery实现的多选框多级联动插件
- 金山反病毒20050123_日报
- winwebmail的技术问题应该从那儿入手?
- php发送与接收流文件的方法
- Android TreeView效果实现方法(附demo源码下载)
- Android 沉浸式状态栏及悬浮效果
