我如何在sap ui中的控制器中定义自定义控制器?

时间:2016-02-25 13:17:34

标签: javascript model-view-controller controller sapui5

所以我们确定sap核心中的内容:

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/core/routing/History",
    "sap/ui/model/json/JSONModel"
], function (Controller,History,JSONModel) 

我的应用程序ID:"sap.ui.test"。

所以我想将控制器连接到已存在的控制器:

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/core/routing/History",
    "sap/ui/model/json/JSONModel",
    "sap/ui/test/webapp/controller/TopMenu"
], function (Controller,History,JSONModel,TopMenu)

我收到一个错误: Error: failed to load 'sap/ui/test/webapp/controller/TopMenu.js。 虽然道路看起来很合适。截图中附有项目结构。

我无法理解是否有可能以这种方式识别控制器?

enter image description here

2 个答案:

答案 0 :(得分:1)

你必须使用

sap.ui.define([
   "sap/ui/core/mvc/Controller",
   "sap/ui/core/routing/History",
   "sap/ui/model/json/JSONModel",
   "sap/ui/test/controller/TopMenu.controller"
], function (Controller,History,JSONModel,TopMenu)

这是因为旧的控制器命名约定:您的控制器必须命名为ABC.controller.jssap.ui.define函数搜索文件,但不知道此约定。它不知道你这次要加载一个控制器。

答案 1 :(得分:0)

sap.ui.define([ "sap/ui/core/mvc/Controller", "sap/ui/core/routing/History", "sap/ui/model/json/JSONModel", "sap/ui/test/controller/TopMenu" ], function (Controller,History,JSONModel,TopMenu)

您无需告诉您的应用确切路径,您已经在Index.html

中完成了此操作

(类似于data-sap-ui-resourceroots='{"sap.ui.test": "sap/ui/test/webapp"}'>