UNPKG

3.96 kBMarkdownView Raw
1<img src="http://tinper.org/assets/images/kero.png" width="120" style="max-width:100%;"/>
2
3
4[![npm version](https://img.shields.io/npm/v/kero.svg)](https://www.npmjs.com/package/kero)
5[![Build Status](https://img.shields.io/travis/iuap-design/kero/master.svg)](https://travis-ci.org/iuap-design/kero)
6[![devDependency Status](https://img.shields.io/david/dev/iuap-design/kero.svg)](https://david-dm.org/iuap-design/kero#info=devDependencies)
7[![NPM downloads](http://img.shields.io/npm/dm/kero.svg?style=flat)](https://npmjs.org/package/kero)
8
9
10[English Document](./README.md)
11## 介绍
12[kero](http://tinper.org/dist/kero/index.html) 是一个前端模型框架,做为`MVVM` 架构中 `Model` 层的增强,提供多维数据模型,解决企业应用中复杂的业务应用场景的开发问题。
13
14
15## 功能
16
17
18### 丰富的API
19
20对外暴露丰富的增删改查API,方便开发者对页面数据的管理
21
22### 多维数据模型
23
24解决了字段关联、主子数据、主子孙等多维数据模型的绑定问题
25
26### 状态标识
27
28数据增加状态标识:新增、修改、删除,方便开发者使用
29
30### 分页缓存能力
31
32具有分页缓存能力,可在前台处理分页,实现跨页操作数据(非必要情况下,不推荐前台分页)
33
34### 事件触发器
35
36具有事件触发器,增删改查过程中的数据变化通过on方法添加监听,供开发者使用
37
38## 快速上手
39
40### 获取kero
41
42- 直接从github获取我们的源码
43```
44git clone git@github.com:iuap-design/kero.git
45```
46
47- 使用npm安装
48
49```
50npm install kero
51```
52
53### 简单示例
54
55#### 模型定义
56
57模型定义方法:
58
59 var myDataTable = new u.DataTable({
60 meta:{
61 field1:{required:true},
62 field2:{}
63 }
64 })
65
66
67meta中是模型的字段信息,字段名对应的对象为字段的属性定义。没有字段属性时,可以为空对象。
68
69字段的属性值在控件模型中被使用到,主要用于控制表单输入、字段显示格式等业务特性。
70
71
72
73#### 数据载入到模型中
74
75模型定义好之后,可以通过`dataTable.setSimpleData`方法把从后台查询到的json数据载入模型之中:
76
77 dataTable.setSimpleData([
78 {"id": "001","name": "tom"},
79 {"id": "002","name": "john"}
80 ])
81
82数据载入到模型中之后,数据被存储在一组`Row`对象之中,json数组中的每一个对象,对应dataTable中的`Row`对象中。
83
84
85#### 新增数据行并赋值
86
87 var row = dataTable.createEmptyRow();
88 row.setValue('id','003')
89
90新增的数据在dataTable中表现为新增一个`Row`对象。调用`setValue`对其中字段赋值。
91
92#### 修改已存在的行中数据
93
94 var row = dataTable.getRow(index);
95 row.setValue('name','jerry');
96
97
98#### 删除某一行数据
99
100 dataTable.removeRow(index);
101
102#### 获取所有数据
103
104 var json = dataTable.getSimpleData();
105
106#### 添加事件监听
107
108示例如下:
109
110```
111//数据改变监听
112dataTable1.on('valueChange',function(event){
113 var field = event.field,
114 rowId = event.rowId,
115 oldValue = event.oldValue,
116 newValue = event.newValue;
117});
118```
119## 文档
120
121开发文档详见[这里](http://tinper.org/dist/kero/docs/overview.html)。
122
123更多内容请移步我们的[官网](http://tinper.org)
124
125## 如何参与贡献
126
127
128### 反馈
129如在使用过程中遇到任何问题,可以在[这里](https://github.com/iuap-design/kero/issues)提交issue反馈;
130
131或者直接fork代码到你的github仓库,提交pull request给我们。
132
133
134[Bug 反馈及需求提交](CONTRIBUTING.md)
135
136### 开发及构建
137
138开发者可以一起参与为 kero 贡献代码,同时也可以基于 kero 进行二次开发或封装插件。
139
140
141neoui 使用 [gulp.js](http://gulpjs.com/) 构建项目。
142
143克隆项目文件:
144
145```
146$ git clone git@github.com:iuap-design/kero.git
147```
148
149然后进入目录安装依赖:
150
151```
152$ npm install
153```
154
155接下来,执行 `gulp`
156
157```
158$ npm run product
159```
160
161### 官方QQ群
162
163527124070
164
165## Licence 版权
166
167[MIT](./LICENSE)