我正在尝试将 SharePoint 集成到 SAPUI5 项目中的 JavaScript。
我在 VS Code 中实现了该项目,但它不起作用,因为 AMD(异步模块定义)与框架 SPPUll 兼容,这为我的问题提供了一个简单的解决方案
我从库(名为 SPPull)下载文件夹,保存到文件夹 libs 中并实现到manifest.json
"resources": {
"js":[
{
"uri":"libs/sppull/dist/index.js"
}
]
当我使用以下命令从控制器调用它时:
var sppull = require("sppull")
它抛出 require is not Defined。
有什么想法吗?谢谢大家
我假设您发布的 JSON 片段是您的 manifest.json 文件。您需要在控制器开头的 sap.ui.define 中使用应用程序命名空间来引用该库。因此,如果您尝试导入 sppull 的控制器是 App.controller.js,它将如下所示:
sap.ui.define([
"sap/ui/core/mvc/Controller",
"mySapUI5App/js"
],
/**
* @param {typeof sap.ui.core.mvc.Controller} Controller
* @param {typeof mySapUi5App.js} SPPull index.js
*/
function (Controller, js) {
"use strict";
return Controller.extend("com.urlshortener.grilo.urlshortener.controller.App", {
onInit: function () {
...
},
onBeforeRendering: function() {
...
},
//other controller methods here
});
其中“mySapUi5App”是应用程序的命名空间,在脚本标签“data-sap-ui-resourceroots”下的index.html中定义:
<script
id="sap-ui-bootstrap"
src="resources/sap-ui-core.js"
data-sap-ui-theme="sap_horizon"
data-sap-ui-resourceroots='{
"mySapUI5App": "./"
}'
></script>
我会将“js”重命名为“Index”,以便它与 sap.ui.define 中的模块需求模式匹配。您还可以在 sap.ui.require 中将文件的完整限定名称引用为“mySapUI5App/dist/libs/sppull/dist/index”。这应该可以解决您的问题。