在多个js文件中拆分控制器

时间:2018-01-05 08:41:48

标签: sapui5

我想知道如何在多个JavaScript文件中拆分控制器。我目前有一个控制器,它有大约5000多行,并且导航它是相当令人沮丧的。有任何建议如何开始?

3 个答案:

答案 0 :(得分:4)

您可以从几种方法开始:

  1. 使用" Mixin"图案
  2. 将你的逻辑分成几个"类"然后把它们分成两个AMD模块,然后只需要"要求"它们并在您的控制器中使用
  3. Mixin可以实现为 AMD模块,它只返回具有所有需要功能的 JSON 对象。为了将它注入控制器,只需使用 jQuery.extend 方法来使用mixin增强控制器的对象。

答案 1 :(得分:2)

这个问题可能会引起一些有见解的答案,但一般,你可以从以下开始:

我还鼓励在开始之前写一些回归short intro

答案 2 :(得分:1)

另一种方法是在控制器之间设置一些层次结构,并使用控制器之间的继承。将多个控制器使用的逻辑移动到一个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(); } }); });

{{1}}