Skip to content

Commit

Permalink
增加文档内容
Browse files Browse the repository at this point in the history
  • Loading branch information
X37ddV committed Jul 17, 2017
1 parent 91c64b5 commit 3dc2f8e
Show file tree
Hide file tree
Showing 6 changed files with 690 additions and 28 deletions.
110 changes: 85 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,33 @@
npm install expr-manager

## Usage
### Simple calculation
```javascript
var exprManager = new window.ExprManager();
var expr = "0.1 + 0.2";
var v = exprManager.calc(expr);
if (!v.errorMsg) {
console.log(v.toValue());
// => 0.3
} else {
console.log(v.errorMsg);
}
var calcData = {v1: "hello", v2: "world"};
expr = "v1 + ' ' + v2 + '!'";
v = exprManager.calc(expr, calcData);
console.log(v.toValue());
// => "hello world!"
expr = "IIf(1 > 2, 'a', 'b')";
v = exprManager.calc(expr);
console.log(v.toValue());
// => "b"
expr = "123.ToString()"
v = exprManager.calc(expr);
console.log(v.toValue());
// => "123"
```
### Advanced calculation
```javascript
var data = {
Table: [{
Field0: 0,
Field1: "Hello",
Field2: {key: "i", value: 0},
Field3: [0, 1],
Field4: new Date(),
Field5: false,
SubTable: [{
Field0: 0,
Field1: "Wrold",
Field2: {key: "j", value: 10},
Field3: [2, 3],
Field4: new Date(),
Field5: true
}]
}]
};
var dataContext = {
"Table": {
fields: {
Expand All @@ -33,7 +41,9 @@ var dataContext = {
"Field2": { type: "object" },
"Field3": { type: "array" },
"Field4": { type: "date" },
"Field5": { type: "boolean" }
"Field5": { type: "boolean" },
"CalcField0": { type: "string" },
"CalcField1": { type: "string" }
},
childs: {
"SubTable": {
Expand All @@ -49,22 +59,72 @@ var dataContext = {
}
}
};
var data = {
Table: [{
Field0: 0,
Field1: "Hello",
Field2: {key: "i", value: 0},
Field3: [0, 1],
Field4: new Date(),
Field5: false,
SubTable: [{
Field0: 0,
Field1: "Wrold",
Field2: {key: "j", value: 10},
Field3: [2, 3],
Field4: new Date(),
Field5: true
}]
}]
};
var context = {
Field0: "!"
};

var exprManager = new ExprManager();
exprManager.init(data, dataContext, context);

var tableName = "Table";
var dataCursor = {
"Table": 0,
"Table.SubTable": 0
};
var expr = "Field1 + ' ' + SubTable[0].Field1 + $C.Field0";
var v = exprManager.calcExpr(expr, tableName, dataCursor);
expr = "Field1 + ' ' + SubTable[0].Field1 + $C.Field0";
v = exprManager.calcExpr(expr, tableName, dataCursor);
console.log(v.toValue());
// => Hello Wrold!
// => "Hello World!"
var t = exprManager.calcDependencies(expr, tableName);
console.log(t.dependencies);
// => ["Table.Field1", "Table.SubTable", "Table.SubTable.Field1"]
```
### Advanced dependent calculation
```javascript
exprManager.resetExpression();
var doCalc = function(type, info) {
console.log(type);
};
// 添加具有依赖关系的表达式
exprManager.addExpression("Field1 + ' ' + SubTable[0].Field1",
"Table", "CalcField0", ["load", "add", "update", "remove"],
doCalc, null);
exprManager.addExpression("CalcField0 + SubTable.Count().ToString()",
"Table", "CalcField1", ["load", "add", "update", "remove"],
doCalc, null);
var errorMsg = exprManager.checkAndSort();
if (!errorMsg) {
exprManager.calcExpression("load", {
entityName: "Table"
}); // => "load"
exprManager.calcExpression("add", {
entityName: "Table"
}); // => "add"
exprManager.calcExpression("update", {
entityName: "Table",
propertyName: "Field1"
}); // => "update"
exprManager.calcExpression("remove", {
entityName: "Table.SubTable"
}); // => "remove"
} else {
console.log(errorMsg)
}
```

## Value type
Expand Down
23 changes: 23 additions & 0 deletions docs/expr-manager.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,29 @@
<div id="container">
<div id="background"></div>

<ul id="jump_to">
<li>
<a class="large" href="javascript:void(0);">Jump To &hellip;</a>
<a class="small" href="javascript:void(0);">+</a>
<div id="jump_wrapper">
<div id="jump_page_wrapper">
<div id="jump_page">


<a class="source" href="expr-manager.html">
expr-manager.js
</a>


<a class="source" href="usage.of.expr-manager.html">
usage.of.expr-manager.js
</a>

</div>
</div>
</li>
</ul>

<ul class="sections">

<li id="title">
Expand Down
Loading

0 comments on commit 3dc2f8e

Please sign in to comment.