Sapui5 如何扩展UI5中的定制类(非自定义控件)
使用UI5使用的AMD和模块范例,我希望在不同的JS文件中使用单独的JS类,将ajax代码与相关控制器分开Sapui5 如何扩展UI5中的定制类(非自定义控件),sapui5,Sapui5,使用UI5使用的AMD和模块范例,我希望在不同的JS文件中使用单独的JS类,将ajax代码与相关控制器分开 一个基础类将关注常见的活动,如通用错误处理,而从这个扩展的特定类将只处理特定于主题的Ajax通信。这不是自定义控件,因此不需要渲染功能、元数据等 我希望从sap.ui.define功能中获益,同时也希望我的新类成为优秀的UI5公民。例如,我想在实例化类时启动init 我应该从哪个sapui5类扩展?我目前使用的是sap/ui/base/Object,但我想知道是否有更好的选择,是基于更好的
一个基础类将关注常见的活动,如通用错误处理,而从这个扩展的特定类将只处理特定于主题的Ajax通信。这不是自定义控件,因此不需要渲染功能、元数据等
我希望从sap.ui.define功能中获益,同时也希望我的新类成为优秀的UI5公民。例如,我想在实例化类时启动init 我应该从哪个sapui5类扩展?我目前使用的是sap/ui/base/Object,但我想知道是否有更好的选择,是基于更好的性能还是更符合目的 我知道,但这似乎只关注呈现到屏幕的类的细节 这是我当前方法的框架:sap.ui.define(['sap/ui/base/Object'],
function(BaseObject) {
"use strict";
var AjaxBase = BaseObject.extend("myAjaxBase", {
constructor: function(oControl) {
BaseObject.apply(this);
console.log("AjaxBase.constructor() fires")
}
})
AjaxBase.prototype.init = function() {
console.log("AjaxBase.init() fires")
}
return AjaxBase;
}, true)
即使对于不扩展
sap.ui.base.Object
的对象,也可以使用sap.ui.define
。因此,如果您真的不需要UI5对象提供的功能,就不必对其进行扩展。但是,在您的情况下,看起来您希望使用事件支持,在这种情况下,至少扩展sap.ui.base.EventProvider
会很有用
当您希望将后端调用与控制器分离时,您似乎正在使用JSONModel,并且具有比读取更复杂的用例。在这种情况下,还可以扩展JSONModel,支持创建、更新和删除操作