在 sapui5 中使用重用对话框时出现错误:
对话框不是构造函数
我想创建一个对话框片段。dialog.js 包含所有函数,然后在 component.js 中将其设为全局
sap.ui.define([
"sap/ui/base/Object"
], function (Object) {
"use strict";
return Object.extend("tmp.Zprojetyousra.controller.Dialog", {
constructor : function (oView) {
this._oView = oView;
},
open : function () {
var oView = this._oView;
var oDialog = oView.byId("dialog");
// create dialog lazily
if (!oDialog) {
var oFragmentController = {
onCloseDialog : function () {
oDialog.close();
}
};
// create dialog via fragment factory
oDialog = sap.ui.xmlfragment(oView.getId(), "tmp.Zprojetyousra.view.Dialog", oFragmentController);
// connect dialog to the root view of this …Run Code Online (Sandbox Code Playgroud) 我read从 SAP UI5 视图控制器调用 GetEntity OData 方法并在请求 URL 中传递键值。当我对键值进行硬编码时,我从后端得到了正确的响应。
但是,当我尝试通过将键值附加到 URL 来动态传递变量中的键值时,它不起作用。我收到以下错误
HTTP请求失败404
在下面的代码中,sGrant是变量,它不起作用。但是,如果我用下面代码中硬编码的值替换变量名称,例如,在这样的 read 方法中:"/GrantMasterSet('TY560003')",那么它可以工作:
var sGrant = this.byId("grantNbr").getValue();
var oMod = this.getOwnerComponent().getModel();
oMod.read("/GrantMasterSet('sGrant')", {
success: function(oData) {
var oJsonModel = new JSONModel();
oJsonModel.setData(oData);
this.getView().setModel(oJsonModel);
}.bind(this),
error: function(oError) {
MessageToast.show("Read Failed");
}
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 SAPUI5 中将字符串转换为日期
var Fdate = "2020-08-01T00:00:00";
var dateFormat = sap.ui.core.format.DateFormat.getDateInstance({
pattern: "dd/MM/yyyy"
});
fdateFormatted = dateFormat.format(Fdate);
Run Code Online (Sandbox Code Playgroud)
但这会返回以下错误:
未捕获的类型错误:j.getTime 不是函数
我尝试将源模式设置为“yyyy-MM-ddTHH:mm:ss”。但这会返回相同的错误。
我想将一个liveChange事件附加到Input基于可重用的字段Fragment(Dialog演练步骤 19:重用对话框)。
在 XML 模板中HelloDialog.fragment.xml我添加了:
<Input
id = "input-b"
type = "Password"
liveChange = ".onLiveChange"
placeholder = "Enter your password" />
Run Code Online (Sandbox Code Playgroud)
在片段的控制器中HelloDialog.js我添加了:
onLiveChange: function (oEvent) {
const sNewValue = oEvent.getParameter("value");
this.byId("getValue").setText(sNewValue);
console.log("sNewValue");
}
Run Code Online (Sandbox Code Playgroud)
然后我在 DevTools 中在此方法中设置一个断点,并尝试在相关内容中键入文本Input,并期望断点将被触发,但什么也没有发生。
我尝试onLiveChange从我调用此片段的位置添加到视图的控制器中Component.js,但仍然没有反应。
为什么onLiveChange我的情况没有触发?在 SAP示例中:输入 - 值更新一切正常,但它们使用常规视图,而不是基于片段的对话框。
当我运行该应用程序时,它会显示一个空白页面。源代码托管在https://github.com/softshipper/fclpoc上。
我究竟做错了什么?
我正在使用一个小的待办事项列表应用程序测试SAPUI5框架.我有一个数据库并通过REST服务访问数据.我可以将所有内容放入我的UI,从UI进入数据库.
但是,我在JSON模型中保存数据库数据的引用,该模型映射到我在UI上显示的表.当我尝试添加/删除元素时,对数据库的写入似乎正常工作,但我的实习模型变量在不同的函数调用之间失去了引用(例如"initToDoModel"和"addToDo").这是代码:
sap.ui.controller("sapui5_test.SAPUI5_Test", {
//THIS IS THE REFFERENCE
todoModel : null,
addTodo : function(text) {
this.doAjax("/add", {
text : text
}).done(function(todo) {
//HERE todoModel IS UNDEFINED BUT WAS SET IN initTodoModel
this.todoModel.getProperty("/").push(todo);
this.todoModel.updateBindings();
this.getView().rerender();
});
},
initTodoModel : function() {
var oModel = new sap.ui.model.json.JSONModel();
var aData = jQuery.ajax({
type : "GET",
contentType : "application/json",
url : "http://sapm04.ibsolution.local:50000/demo.sap.com~d337_resttest_web/rest/todo/init/",
dataType : "json",
async: false,
success : function(data,textStatus, jqXHR) {
oModel.setData({modelData : data});
//HERE THE todoModel IS SET
this.todoModel = oModel;
alert("Ok"); …Run Code Online (Sandbox Code Playgroud) 出于好奇,我想到了阅读GitHub上提供的OpenUI5代码.但是,我不知道从哪里开始.什么是OpenUI5代码的"第1章"?有很多库和代码我不知道从哪里开始.有人可以帮我吗?提前致谢!
我不知道为什么只有当按下按钮时才能运行的功能.
这是我的按钮声明:
var oButton = new sap.m.Button({
id: "buttonId",
text: "Yes",
press: this.fnB()
});
Run Code Online (Sandbox Code Playgroud)
我的控制器如下所示:
sap.ui.controller("<controller-name>", {
fnA: function(){<button_declaration_here>},
fnB: function(){console.log("Hello from fnB!");}
});
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我得到:
你好fnB!
未捕获的TypeError:无法读取未定义的属性"0"
还没有按下按钮,为什么我会收到问候消息?
如果重要,我使用SAP WEB IDE ...
我在Component.js中添加了一个命名模型.我可以从任何视图访问带有其名称的模型,但我想从其中一个对我不起作用的控制器访问此模型.
sap.ui.core.getModel("modelName")无效,sap.ui.getCore().getModel("modelName")也无效.
如何从控制器中引用其包含的Component和命名模型?
谢谢
加纳
我有一个表结合并从ES4 SAP系统消耗的公开可用的OData服务,我的根实体集ProductSet,它有2个导航性能:"ToSupplier" +"ToSalesOrderLineItems",我能发出"展开"参数表绑定如下,但是你可以帮助我如何传递两个导航属性,以便oData服务扩展"ToSupplier"+"ToSalesOrderLineItems"?
谢谢密山