Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';这是什么?Vue中的$eval在做什么?_Javascript_Vue.js - Fatal编程技术网

Javascript 什么';这是什么?Vue中的$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); 在这

我正在将一个我没有编写的旧脚本从0.11版迁移到2.5.4版,并收到一条警告:

将此.$eval('reportData | reportFilter false')替换为使用普通JavaScript的解决方案 第327行:assets/js/custom-reports.js 原因:vm.$eval已被删除,因为它没有实际用途 更多信息:

我可以在代码中看到它的设置值:

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);