我正在搜索如果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) 是否有定义应在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) 我正在寻找一种从多个文件中提取“尖叫蛇案例”字符串的方法。
Screaming snake case 是由下划线分隔的大写单词。正则表达式将是([A-Z]*_?[A-Z]*)*.
现在我正在寻找一种在多个文件中查找此类匹配字符串的方法。我希望 grep 或 find 有帮助吗?
我拥有的:
例如:
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)
感谢你的支持
自 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.templateShareable为true.
那么这里有什么问题呢?库中的错误?或者我的代码有什么问题?另见:https : //sapui5.netweaver.ondemand.com/sdk/#docs/api/symbols/sap.ui.base.ManagedObject.html
在 1.32.x 版本中,消息已更改,现在为:
模板在绑定中被重用,但已被标记为要销毁的候选对象。您最好在绑定配置中使用 templateShareable:true 声明这样的用法。——
但根据文档,默认值仍应为 true: …
我有一个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) sapui5 ×4
odata ×2
client ×1
data-binding ×1
datetime ×1
find ×1
grep ×1
javascript ×1
regex ×1
shell ×1