2017-03-21 196 views
1

我有許多視圖,哪些控制器幾乎具有相同的功能。我想要的是有一個母親控制器或類或其他任何東西,它具有所有這些功能抽象或實施。視圖控制器將繼承或擴展此母控制器。我想確保即使我沒有明確實現視圖控制器中的函數,下面的代碼仍然可以工作。類概念SAPUI5

content.onMove(); // Content is the controller of the view 

,我不會得到這樣那樣的錯誤「找不到onMove()」

我沒有任何起點

謝謝。

回答

1

SAPUI5使用require.js原則:

sap.ui.define([ 
    "sap/ui/core/mvc/Controller" 
], function (Controller) { 
    "use strict"; 
    return Controller.extend("", { 
    }); 
}); 

所以,你可以看看到require.js文檔,以瞭解更多關於類結構化。

我認爲你不會有asbract,因爲它不存在於JS中,但你可以很容易地覆蓋函數。

例如,你將有一個基本的控制器這樣的:

 sap.ui.define([ 
      "sap/ui/core/mvc/Controller" 
     ], function (Controller) { 
      "use strict"; 
      return Controller.extend("sap.mydemo.baseController", { 
       onShowHello : function() { 
        alert("Hello World"); 
       }, 
       onShowGoodBye : function() { 
        alert("Goodbye World"); 
       } 
      }); 
     }); 

,只是把它自己的控制器上:

ap.ui.define([ 
      "sap/mydemo/baseController" 
     ], function (Controller) { 
      "use strict"; 
      return Controller.extend("", { 
       SayHelloAndGoodBye: function(){ 
         Controller.SayHello(); 
         Controller.SayGoodBye(); 
       } 
      }); 
     }); 

這應該工作。

+1

正是我所需要的。很高興你在那裏:)謝謝你對require.js的引用。這有助於理解這麼多事情。 – Aline