/** * 对某个表达式进行求值 * @param viewModel 数据对象 * @param express */ export function tplExpress(viewModel, express) { if (viewModel.expressionRe.test(express)) { // If we have '{foo}' alone it is a literal 简单表达式 express = express.substring(1, express.length - 1); return viewModel.get(express) } else { let ret = undefined viewModel.bind(express, function (v) { ret = v debugger }) // Ext.app.bind.TemplateBinding debugger } } /** * 对多个表达式进行求值. 异步回调的方式返回 * { * a: 1, * b: '{someBind}', * c: ['a', 'b', 'c'], * d: ['a', 'b', '{someBind}'], * e: { * y: 1, * z: 2 * }, * f: { * y: 1, * z: '{someBind}' * } * } * * // Will produce * { * b: value, * d: ['a', 'b', value], * f: { * y: 1, * z: value * } * } * @param viewModel scope.viewModel对象 * @param paramObject 求值对象 */ export function calcObject(viewModel, paramObject) { // new Ext.app.bind.Multi({a:'1',b:'ddd{query.WH_ID}'},currentScope.viewModel,function(v){console.log(v)},currentScope, {single: true}) return new Promise(resolve => { const schedule = new Ext.app.bind.Multi( paramObject, viewModel, (ret) => { schedule.destroy() resolve(ret) }, viewModel, {single: true}) }) }