diff --git a/src/mixins/computedFields.js b/src/mixins/computedFields.js index d438e419d..1939b9df7 100644 --- a/src/mixins/computedFields.js +++ b/src/mixins/computedFields.js @@ -1,21 +1,20 @@ +import _ from 'lodash'; import { Parser } from 'expr-eval'; export default { methods: { evaluateExpression(expression, type) { let value = null; - try { - const self = this; + const merged = {}; + _.merge(merged, this.vdata, this._data); + + try { //monitor if variable belongs to data (defined variables) or vdata (external variables) //in this way the event is not executed again when the variable is update - const data = new Proxy(Object.assign({}, this), { + const data = new Proxy(merged, { get(data, name) { - if (data[name] === undefined) { - return self.vdata[name]; - } else { - return data[name]; - } + return data[name]; }, set() { throw 'You are not allowed to set properties from inside an expression';