2017-03-21 149 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