我想实现一个新控制器,它将从现有控制器重新定义一些方法。
我想说:
MyForm.controller.js
sap.ui.controller("MyForm", {
showMyName: function() {
alert("MyForm.showMyName");
},
onSearch: function(oEvent) {
// Do something...
},
});
我想要一个新的 MyNewForm 控制器,它会覆盖方法showMyName,但会继承onSearch方法。 任何想法如何实现这一目标?
提前致谢。
答案 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"引用,并在其上定义了扩展。