baidu / san

A fast, portable, flexible JavaScript component framework
https://baidu.github.io/san/
MIT License
4.73k stars 551 forks source link

是否考虑把 evalExpr 也开放出来 #181

Closed leeight closed 6 years ago

leeight commented 6 years ago

因为现在 san 下面有 san.parseExpr,如果把 san.evalExpr 也开放出来,那么好像就可以当做一个 expression evaluator 来用了。

const scope = ...
const expr = san.parseExpr('a + b');
const value = san.evalExpr(expr, scope);
errorrik commented 6 years ago

我想了下,这个版本先不开了,issue先留着

原因是,evalExpr的签名比较复杂,不适合开。回头看看怎么整理。现在是这样的

/**
 * 计算表达式的值
 *
 * @param {Object} expr 表达式对象
 * @param {Data} data 数据容器对象
 * @param {Component=} owner 所属组件环境
 * @param {boolean?} escapeInterpHtml 是否对插值进行html转义
 * @return {*}
 */
function evalExpr(expr, data, owner, escapeInterpHtml) {
}