SAPUI5 - 扩展sap.ui.controller实现

时间:2014-10-02 13:13:44

标签: sapui5

我想实现一个新控制器,它将从现有控制器重新定义一些方法。

我想说:

MyForm.controller.js

sap.ui.controller("MyForm", {

    showMyName: function() {
        alert("MyForm.showMyName");
    },

    onSearch: function(oEvent) {
        // Do something...
    },

});

我想要一个新的 MyNewForm 控制器,它会覆盖方法showMyName,但会继承onSearch方法。 任何想法如何实现这一目标?

提前致谢。

3 个答案:

答案 0 :(得分:4)

它的工作原理如下:

基本控制器的代码:

sap.ui.core.mvc.Controller.extend("MyForm", {
    showMyName: function() {
        alert("MyForm.showMyName");
    },
    //Further functions ....
});
使用MyForm作为基础的MyNewForm控制器的

代码:

//require the base first
jQuery.sap.require("MyForm");

//extent the base
MyNewForm.extend("MyForm", {
    onInit : function() {
        this.showMyName(); //alerts
    }
})

在这个demoapp中,你会看到它的实际效果: https://sapui5.netweaver.ondemand.com/sdk/test-resources/sap/m/demokit/tdg/index.html?responderOn=true 寻找util / Controller.js作为基类 并且对于view / Master.Controller.js作为类的用法。

最好的问候

答案 1 :(得分:1)

我认为应该是:

MyForm.extend(" MyNewForm",{

答案 2 :(得分:0)

通过调用方法sap.ui.controller("MyForm", {}), " MyForm"控制器未定义,并且在执行范围内永远不可用。
哪里 sap.ui.core.mvc.Controller.extend("MyForm", {})定义了函数并由" MyForm"引用,并在其上定义了扩展。