Dict对象
由 0x400 发布于
### 使用方法
#### 1. 初始化 `Dict` 对象
根据不同的使用场景,可以传入不同类型的参数来初始化 `Dict` 对象:
- **操作本应用的数据字典**:传入数据字典的名称、别名或 ID。
```javascript
var dict = new this.Dict("bulletinDictionary");
```
- **操作其他应用的数据字典**:传入一个包含应用类型、应用名称和数据字典名称等信息的对象。
```javascript
var dict = new this.Dict({
type: "cms",
application: "bulletin",
name: "bulletinDictionary",
anonymous: true
});
```
#### 2. 数据字典操作方法
##### `get` 方法
根据路径获取数据字典中的数据。
```javascript
// 同步获取所有数据
var data = dict.get();
// 同步获取指定路径的数据
var category = dict.get("category");
// 异步获取指定路径的数据,使用回调函数处理结果
dict.get("category.0", function(data) {
console.log(data);
}, function(xhr) {
console.error(xhr);
}, true);
// 异步获取指定路径的数据,使用 Promise 处理结果
var promise = dict.get("category", null, null, true);
promise.then(function(data) {
console.log(data);
});
```
##### `add` 方法
根据路径新增数据字典的数据。
```javascript
dict.add("category", { text: "系统公告", value: "system" }, function(data) {
console.log(data);
}, function(xhr, text, error) {
console.error(xhr, text, error);
});
```
##### `set` 方法
根据路径修改数据字典的数据。
```javascript
dict.set("archiveOptions", [ { text: "是" }, { text: "否" } ], function(data) {
console.log(data);
}, function(xhr) {
console.error(xhr);
});
```
##### `delete` 方法
根据路径删除数据字典的数据。
```javascript
dict.delete("archiveOptions", function() {
console.log("删除成功");
}, function(xhr) {
console.error(xhr);
});
```
### 注意事项
- **路径格式**:当路径为多级时,用点号 (`.`) 分隔。
- **异步操作**:`get` 方法支持异步执行,通过 `async` 参数控制,异步执行时返回 `Promise`。
- **缓存处理**:`get` 方法的 `refresh` 参数可控制是否忽略本地缓存直接从服务器获取数据。
- **操作限制**:
- `add` 方法中,如果路径已有数据且不是数组,则会报错;不能对数组下标直接赋值,也不能对已存在的非数组路径赋值。
- `set` 方法中,如果数据路径不存在,则会报错。
- `delete` 方法中,如果数据路径不存在,则会报错;如果删除数组中的某一项,只能删除最后一项。
评论