SAPUI5:如何在控制器中使用外部库?

pao*_*olo 0 sapui5

在我的 index.html 文件中,我有以下代码:

<script>
        sap.ui.getCore().attachInit(function() {
            jQuery.sap.registerModulePath("lodash","https://cdn.jsdelivr.net/npm/lodash@4.17.4/lodash.min");
        jQuery.sap.require("lodash");

        new sap.m.Shell({
            app: new sap.ui.core.ComponentContainer({
                height : "100%",
                name : "sap.com.ml.docservicedoc-service-m-learning"
            })
        }).placeAt("content");
    });
Run Code Online (Sandbox Code Playgroud)

我现在如何在我的控制器之一(而不是视图)中使用 lodash?我试过:

sap.ui.define([
"sap/ui/core/mvc/Controller",
"lodash"], function(Controller, _) {
Run Code Online (Sandbox Code Playgroud)

不幸的是“_”始终是未定义的。

pao*_*olo 5

想出了一个解决方案:

  1. libs在项目中创建文件夹并将库放入该文件夹中
  2. 在控制器内添加库,如下所示。另请记住,define 函数中的值应与库的全局名称不同:
sap.ui.define([
       "sap/ui/core/mvc/Controller",
       "<project namespace>/libs/lodash/lodash.min",
   ], function(Controller, lodash) {
Run Code Online (Sandbox Code Playgroud)
  1. 使用库的全局根变量。如果是 lodash,则为“_”