2016-11-16 124 views
1

使用UI5使用的AMD和模塊範例,我想在不同的JS文件中使用單獨的JS類來將我的ajax代碼與相關控制器分開。如何在UI5中定製類的擴展(不是定製控件)

粉底類將有共同的活動予以關注,如通用的錯誤處理,而從這個擴展將只處理特定主題的AJAX通信的特定類。這會不會是一個自定義的控制,從而爲渲染能力,元數據沒有要求,等

我想從sap.ui.define功能中受益,也希望我的新類爲好UI5公民。例如,我想在類實例化時觸發我的init。

哪個sapui5類或類應,我從擴大?我目前正在使用SAP/UI /基/對象,而是想知道是否有基於更好的性能和更好的貼合的目的是更好的選擇。

我知道documentation on custom controls,但這似乎只關注渲染到屏幕的類的細節。

這是我目前的做法的骨架:

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) 

回答

1

可以使用sap.ui.define即使不延長sap.ui.base.Object對象。所以,如果你並不真的需要由UI5提供的功能對象時,並不被迫延長他們。但是,在你的情況下,它看起來像你想使用事件支持,在這種情況下,它至少可以延長sap.ui.base.EventProvider

由於您希望從您的控制器分離後端調用,它看起來像您正在使用JSONModel,並且具有比讀取更復雜的用例。在這種情況下,你也可以與創建,更新和刪除操作的支持,擴展JSONModel。