我想知道如何在多个JavaScript文件中拆分控制器。我目前有一个控制器,它有大约5000多行,并且导航它是相当令人沮丧的。有什么建议如何入门?
另一种方法是在控制器之间设置一些层次结构,并使用控制器之间的继承。将几个控制器使用的逻辑移动到一个BaseController.js
。
例如,您可以设置从BaseController.js
扩展的sap/ui/core/mvc/Controller
:
sap.ui.define([ "sap/ui/core/mvc/Controller" ], function(Controller) {
"use strict";
return Controller.extend("BaseController", {
someBaseFunction : function() {
// Do something
},
});
});
而在另一个控制器中,例如App.controller.js
从你的BaseController.js
延伸:
sap.ui.define(["%PATH_TO_YOUR_BASE_CONTROLLER%/BaseController",
], function(BaseController) {
"use strict";
return BaseController.extend("%PATH_TO_YOUR_APP", {
onInit : function() {
// Call function from BaseController.js
this.someFunction();
}
});
});
您可以从几种方法开始:
Mixin可以实现为AMD模块,它只返回具有所有所需功能的JSON对象。为了将它注入控制器,只需使用jQuery.extend方法来使用mixin增强控制器的对象。
这个问题会引起一些有见解的答案,但一般来说,你可以从以下开始:
我还鼓励你在开始之前写一些回归tests。