【问题标题】:SAPUI5: How to create XMLView and its controller in runtime?SAPUI5:如何在运行时创建 XMLView 及其控制器?
【发布时间】:2017-03-10 04:08:47
【问题描述】:

我想在运行时创建一个 XMLView 并将一个控制器绑定到它。但我不知道如何在运行时创建和实例化控制器。

这是我写的代码:

var oView = sap.ui.xmlview(sViewId, {
            viewContent: sViewContent,
            controller: ?????
        });
oRouter.getViews().setView(sViewName, oView);

这是我编写此代码所基于的 API:

https://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.html#.xmlview

【问题讨论】:

    标签: javascript sapui5


    【解决方案1】:

    有两种主要的方法。 您可以动态定义一个新的控制器类,然后使用它来实例化一个新的控制器实例:

    var MyController = sap.ui.core.mvc.Controller.extend("MyController", {
        onInit: function() {
            // do something
        }
    });
    var oView = sap.ui.xmlview(sViewId, {
         viewContent: sViewContent,
         controller: new MyController()
    });
    

    或者您可以使用sap.ui.controller 函数定义一个新的控制器,然后获取它的一个实例:

    // first define the new controller type
    sap.ui.controller("MyController", {
        onInit: function() {
            // do something
        }
    });
    var oView = sap.ui.xmlview(sViewId, {
         viewContent: sViewContent,
         // then instantiate the controller
         controller: sap.ui.controller("MyController")
    });
    

    如果您在视图 XML 内容中引用控制器名称,则不必将控制器实例传递给 sap.ui.xmlview 函数调用。例如。可以看SAPUI5 jsfiddle模板:https://jsfiddle.net/nistv4n/93mx0yvt/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多