Javascript 什么';这是什么?Vue中的$eval在做什么?
我正在将一个我没有编写的旧脚本从0.11版迁移到2.5.4版,并收到一条警告: 将此.$eval('reportData | reportFilter false')替换为使用普通JavaScript的解决方案 第327行:assets/js/custom-reports.js 原因:vm.$eval已被删除,因为它没有实际用途 更多信息: 我可以在代码中看到它的设置值:Javascript 什么';这是什么?Vue中的$eval在做什么?,javascript,vue.js,Javascript,Vue.js,我正在将一个我没有编写的旧脚本从0.11版迁移到2.5.4版,并收到一条警告: 将此.$eval('reportData | reportFilter false')替换为使用普通JavaScript的解决方案 第327行:assets/js/custom-reports.js 原因:vm.$eval已被删除,因为它没有实际用途 更多信息: 我可以在代码中看到它的设置值: this.$set('reportData[' + key + '].selected', !selectAll); 在这
this.$set('reportData[' + key + '].selected', !selectAll);
在这里使用它们:
var data = this.$eval('reportData | reportFilter false');
有人知道这里发生了什么,以及我如何重写它以一种新的方式工作吗?这看起来像是用一个名为
reportFilter
的过滤器过滤reportData
,我猜它是作为参数传递的false
。Vue 2
中的过滤器的工作方式不同,因此您需要将reportFilter
移动到一个方法,但是,如果在多个组件中使用此方法,您可能需要创建一个,因此:
然后,在使用reportFilter
的任何组件中,您都需要使用mixin:
new Vue({
// ...
mixins: [Filters],
// ...
})
然后,您可以将$eval
代码更改为:
var data = this.reportFilter(reportData, false);
这里有一个JSFiddle让您了解它的工作原理:谢谢,克雷格!我要试一试。
var data = this.reportFilter(reportData, false);