小编use*_*327的帖子

SAPUI5:如果ODataModel发生变化,如何获取事件通知?

我正在搜索如果ODataModel(在客户端)将被更改将抛出的事件.问题是,在我的应用程序中有许多能够编辑模型的不同字段.如果是模型更改,我会注册一个启用"保存"按钮的功能."保存"按钮将调用模型的submitChanges()(我使用TwoWayBinding模式).

目前我只检测到"hasPendingChanges()"方法,但没有我可以注册的事件.

处理此问题的建议解决方案是什么?

要处理每个"输入"控件的更改看起来不是一个好方法,因为很容易忘记某些字段(至少如果其他人将维护代码).

我现在的解决方案现在看起来与此类似:

sap.ui.model.odata.ODataModel.extend("MyModel", {
  setProperty : function(sPath, oValue, oContext) {
  sap.ui.model.odata.ODataModel.prototype.setProperty.apply(this, [sPath, oValue, oContext]);
  // do something here
  }
});
Run Code Online (Sandbox Code Playgroud)

event-handling odata sapui5

9
推荐指数
1
解决办法
1万
查看次数

如何在SAPUI5中处理Edm:DateTime表单OData接口是否正确?

是否有定义应在OData Edm中发送哪些值:SAP Netweaver Gateway服务的DateTime?特别是它应该总是被解释为UTC?

我假设SAPUI5库足够智能,如果接口定义正确,自动处理所有这些时区问题 - 问题是,什么是正确的?

我更喜欢在客户端使用这样的代码:

new sap.m.DatePicker({
     value : {
         path : "BirthDate",
         type : new sap.ui.model.type.Date
     }
}),
Run Code Online (Sandbox Code Playgroud)

你是如何解决这些问题的?

编辑

时区处理对我来说似乎仍然很奇怪.SAP Gateway Server在Edm:DateTime中发送以下内容:2015-04-16T00:00:00缺少任何时区信息.

如果我绑定这样的日期选择器:

var oContent = new sap.m.DatePicker({
    value : {
        path : "Date",
        type : new sap.ui.model.type.Date({
                    style: "short",
                })
    }
})
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:16.04.15(似乎是正确的).绑定没有类型信息的日期选择器显示:Thu Apr 16 2015 02:00:00 GMT + 0200(MitteleuropäischeSommerzeit)

如果我将日期选择器的日期更改为17.04.15,则第二行是:2015年4月17日星期五00:00:00 GMT + 0200(MitteleuropäischeSommerzeit)请注意时间差异(缺少2小时).

如果我把它发送到服务器我得到了Edm.DateTime == 2015-04-16T00:00:00控制显示:Thu Apr 16 2015 02:00:00 GMT + 0200(MitteleuropäischeSommerzeit)

如果我使用

new sap.m.DatePicker({
value : {
    path : "Date",
    type …
Run Code Online (Sandbox Code Playgroud)

datetime sapui5

6
推荐指数
2
解决办法
2万
查看次数

如何从多个文件中提取尖叫蛇案例字符串列表?

我正在寻找一种从多个文件中提取“尖叫蛇案例”字符串的方法。

Screaming snake case 是由下划线分隔的大写单词。正则表达式将是([A-Z]*_?[A-Z]*)*.

现在我正在寻找一种在多个文件中查找此类匹配字符串的方法。我希望 grep 或 find 有帮助吗?

我拥有的:

  • 多个子目录中的多个文件
  • cygwin 的 shell 可能性(因此可以使用最常见的 Linux 命令)
  • 可能发生多个这样的字符串在一行中

例如:

Some text WITH some SNAKE_CASE words.
Run Code Online (Sandbox Code Playgroud)

输出应该是一个列表,如:

WITH
SNAKE_CASE
Run Code Online (Sandbox Code Playgroud)

用例是,snake case 词被用作 i18n 键来维护属性文件,但没有 IDE 支持来保持所有这些同步。

我现在使用的是:

find . -name "*.js" -exec grep -oP '\b[A-Z]+(_[A-Z]+)*\b' {} + | cut -d':' -f2 | sort | uniq
Run Code Online (Sandbox Code Playgroud)

感谢你的支持

regex shell grep find

4
推荐指数
1
解决办法
5679
查看次数

由于templateShareable:true 导致的SAPUI5 错误消息的解决方案?

自 SAPUI5 1.28.20 升级以来,我收到以下错误消息:

共享模板必须在绑定信息中用 templateShareable:true 标记

代码在 MangedObject.js 中,如下所示:

        } else if ( oBindingInfo.templateShareable === MAYBE_SHAREABLE_OR_NOT ) {
            // a 'clone' operation implies sharing the template (if templateShareable is not set to false)
            oBindingInfo.templateShareable = oCloneBindingInfo.templateShareable = true;
            jQuery.sap.log.error("A shared template must be marked with templateShareable:true in the binding info");
        }
Run Code Online (Sandbox Code Playgroud)

oBindingInfo.templateShareable值为true,值为MAYBE_SHAREABLE_OR_NOT1。

根据文档,默认oBindingInfo.templateShareabletrue.

那么这里有什么问题呢?库中的错误?或者我的代码有什么问题?另见:https : //sapui5.netweaver.ondemand.com/sdk/#docs/api/symbols/sap.ui.base.ManagedObject.html

SAPUI5 版本 1.32.x 的更新

在 1.32.x 版本中,消息已更改,现在为:

模板在绑定中被重用,但已被标记为要销毁的候选对象。您最好在绑定配置中使用 templateShareable:true 声明这样的用法。——

但根据文档,默认值仍应为 true: …

data-binding sapui5

3
推荐指数
1
解决办法
1万
查看次数

如何在绑定到客户端控件之前对SAPUI5 OData进行分组?

我有一个odata列表,例如JSON表示法:

var data = [
 {"category" : "A", "value" : 1, "group" : "x"},
 {"category" : "B", "value" : 2, "group" : "y"},
 {"category" : "C", "value" : 3, "group" : "x"},
 {"category" : "A", "value" : 4, "group" : "y"},
 {"category" : "A", "value" : 5, "group" : "x"}
];
Run Code Online (Sandbox Code Playgroud)

首先,我对group == x;剩下的值进行筛选:

var data = [
 {"category" : "A", "value" : 1, "group" : "x"},
 {"category" : "C", "value" : 3, "group" : "x"},
 {"category" : …
Run Code Online (Sandbox Code Playgroud)

javascript client odata sapui5

2
推荐指数
1
解决办法
8629
查看次数