apply
- apply(callback, params, async)
使用范围: client
编程语言: javascript
父类: Item 类
描述说明
将所有已更新的、已插入的、已删除的记录从实体项数据集发送到应用程序服务端,以写入数据库。
apply 方法有如下参数:
callback: 如果参数不存在,并且async参数是false或是undefined,发送到服务端的请求是同步的; 否则,将异步执行请求,在收到响应后,将执行回调。params- 一个指定用户定义参数的对象,可以在服务器上的 on_apply 事件处理程序中使用, 以进行一些额外的处理async: 如果值是 true ,并且没有回调参数,将异步执行请求
参数的先后顺序无关紧要。
apply 方法
检查实体项是否是一个明细项,如果它是,返回 and if it is, returns (the master saves the details changes)
检查实体项是否处于 “编辑” 或 “插入” 状体 , 如果是,则提交记录
检查变更记录是否有变化,如果没有,则执行回调函数(如果传递了),然后返回
如果为实体项定义了 on_before_apply 事件处理程序,则触发
将变更发送到服务端。
服务器在接收到求情后,检查是否为实体项定义了 on_apply 事件处理程序, 如果定义了,就执行它。否则,生成 SQL 查询语句并执行,已将变更写入数据库。 请参考 on_apply events 话题。
在生成一个 SQL 查询语句时,会检查发送请求的用户是否有权限进行更改, 如果没有,则抛出一个异常。
将变更写入数据库。
在将变更写入数据库之后,服务器将执行的结果发送到客户端。
如果在服务端上的操作引发了异常,那么在抛出异常之前,客户端也会抛出异常。 如果传了回调参数,将调用它,将错误信息作为回调函数的参数进行传递。
客户端依据执行结果更新变更日志。
如果为实体项定义了 on_after_apply 事件处理程序, 则触发它。
如果传递了回调参数,则调用它。
示例
var self = this;
this.apply(function(err) {
if (err) {
self.alert_error(err);
}
else {
//some code to execute after appling changes
}
});