在Jerry的教程SAPUI5应用开发教程六十六-如何基于ODataV4实现SAPUI5表单控件的删除功能,有有位朋友问了一个问题:我们选中列表项后,点击删除按钮,会触发一个OData删除请求:这个删除请求是通过代码中的第62行调用BindingContext实例的delete方法触发的onDelete函数。delete方法的入参是$auto,这个字符串是什么意思呢?和往常一样,我们可以通过Chrome开发者工具单步调试来理解这个参数的含义:GroupID。也可以在官方文档中找到delete方法的参数定义:该参数表示删除请求的GroupID,$auto为默认值。在Context.js的delete实现中,会调用OData模型实例的checkGroupId方法来验证传入的值:groupid是SAPUI5框架用来识别和管理ODataBatchRequest(批处理请求)的字段一、参考文档:groupid的允许值有$auto、$auto.*和$direct。$auto的含义是默认行为,即通过OData模型实例调用API触发的请求,以批量请求的方式发送给OData服务器。$direct表示不以批处理方式发送请求。关于什么是OData请求的批量发送模式,Jerry在我的文章:SAPUI5应用开发教程63-深入介绍基于ODataV4的本地MockServer实现中已经有详细介绍。Context会将删除操作委托给Binding实例的_delete方法执行。大多数情况下,我们在调用BindingContext的delete方法时,可以传入默认的groupid,即$auto。这也是为什么在实现删除功能的示例代码中SAP的帮助文档中大部分使用默认值的原因:当然,我们也可以在应用程序中自定义groupid。具体例子参考作者文章文章:HowSAPUI5ODataV4ModelsAreConstructed
