我有一个使用SAPUI5的应用程序.我使用自己的CSS广泛地设计了结果,这大大增强了应用程序的外观和可用性.
几个星期前,SAPUI5库的新版本发布了
https://sapui5.hana.ondemand.com/resources/sap-ui-core.js
地址(以及AU和US服务器).这个新版本改变了一些按钮的渲染.这破坏了我的一些CSS.(它还修复了一堆其他问题,但不幸的是,破碎的CSS更为明显.)
有没有办法在从SAP维护的库请求时请求某个版本的UI5?或者是复制库并自己托管它的唯一解决方案(并参考我的应用程序中的托管版本?)
如果第二个选项是我唯一真正的选择似乎很不幸,因为这意味着我不会从已经将UI5库加载到缓存中的其他应用程序中受益.考虑到加载UI5库需要多长时间,这是一个非常遗憾.
我还注意到jQuery本身非常清楚,你应该永远不要在生产代码中引用他们的lib的最新版本:
http://blog.jquery.com/2014/07/03/dont-use-jquery-latest-js/
"所以我们要明确一点:不要在生产网站上使用jquery-latest.js. "
关于UI5,我认为应该/可能也是如此 - 请告诉我它是什么?或者,如果不是这个计划?
谢谢!
NB我这里指的是保持HCP服务器上的库- https://sapui5.hana.ondemand.com,https://sapui5.ap1.hana.ondemand.com和HTTPS://sapui5.us1.hana .ondemand.com不是任何本地维护的SAP服务器.
如何在SapUI5中的XML-View中实现if/else条件,该条件使用来自JSONModel的标志(条件)?
到目前为止我有一个控制器:
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/model/json/JSONModel"
], function (Controller, JSONModel) {
"use strict";
return Controller.extend("sap.ui.demo.myApp.myController", {
onInit: function () {
//// set data model on view
var oData = {
title: "A cool title",
values: [{name: "Text 1", marketed: true}, {name: "Text 2", marketed: false}, {name: "Text 3", , marketed: true}]
};
var oModel = new JSONModel(oData);
this.getView().setModel(oModel);
}
});
});
Run Code Online (Sandbox Code Playgroud)
和一个视图:
<mvc:View
controllerName="sap.ui.demo.myApp.myController"
xmlns="sap.m">
<!-- using aggregation binding -->
<Panel expandable="true" expanded="true" headerText="{/title}" width="100%" content="{/values}">
<content> …Run Code Online (Sandbox Code Playgroud) 我们有2个应用之一是部署在SAP ABAP资源库,这是写OpenUI5另一个应用程序,所以我们已经部署在Apache Tomcat上未涉及到SAP的SAP应用菲奥里.
我们需要整合这两个应用程序,比如点击Fiori应用程序中的按钮需要打开OpenUI5应用程序.
问题是部署在Tomcat上的模块(App)是无法打开的,因为当我们注册模块路径时,fiori没有使用domian
jQuery.sap.addUrlWhitelist("http", "tomcat.server.host", "7070", "/tomcatapp/resources/js/ui5widgets");
jQuery.sap.registerModulePath("com.xxx.yyy", "http://tomcat.server.host:7070/tomcatapp/resources/js/ui5widgets");
Run Code Online (Sandbox Code Playgroud)
当我需要的时候
错误是
core-min-0-dbg.js:17351 Uncaught Error: failed to load 'com/xxx/yyy/aaa/bbb.js' from /sap/bc/ui5_ui5/ui2/ushell/resources/~20151006101200~/com/xxx/yyy/aaa/bbb.js:
0 - AbortError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'http://sap.netweaver.net:2020/sap/bc/ui5_ui5/ui2/ushell/resources/~20151006101200~/com/xxx/yyy/aaa/bbb.js'.(…)
Run Code Online (Sandbox Code Playgroud) 转义字符\n和 Unicode 字符\u000a仅在 JavaScript 中有效。但是,我尝试在 XML 视图中添加换行符,如下所示。但不起作用:
<u:TimelineItem text="First Line\n SecondLine" />
Run Code Online (Sandbox Code Playgroud) 我知道有些人会发表评论,比如这篇文章重复了这么多问题,但我已经尝试了很多方法来在linkedin Oauth 中实现访问令牌。解释我的尝试。
1) 我正在关注它的官方文档Linkedin Oauth2
2) 我成功地从第 2 步获得授权代码并将该代码传递给第 3 步以交换用于获取访问令牌的授权代码。但我收到以下错误 {"error_description":"缺少必需的参数,包含无效的参数值,参数不止一次。:无法检索访问令牌:appId 或重定向 uri 与授权代码或授权代码不匹配或授权代码已过期”, “错误”:“invalid_request”}
3)根据一些链接,我需要在标题中设置内容类型。缺少告诉设置内容类型的链接
4)然后我尝试调用https://www.linkedin.com/uas/oauth2/accessToken此服务而不是POStto GET。并将数据作为 queryParams 传递。
5) 一些链接说 oauth 代码在 20 秒后过期,所以我已经检查过,我在不到 1 秒的时间内调用访问令牌。
6)如果我像下面这样在 Body params 中传递数据并使用 url 作为 https://www.linkedin.com/uas/oauth2/accessToken
var postData = {
grant_type: "authorization_code",
code: authCode,
redirect_uri: 'https%3A%2F%2Foauthtest-mydeployed-app-url',
client_id: 'my_client_id',
client_secret: 'secret_key'
};
Run Code Online (Sandbox Code Playgroud)
7)Get我试过打电话给我的网址
https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code='+authCode+'&redirect_uri=https%3A%2F%2Foauthtest-mydeployed-app-url&client_id=my_client_id&client_secret=secret_key
即使状态代码为 200,我仍然收到错误,我收到该错误(使用GETapi),如果POSt通过传入postData正文,我收到错误的请求400状态代码
不明白为什么我没有获得访问代码。我已经阅读了很多解决方案。根据要求共享代码。
var postData = { …Run Code Online (Sandbox Code Playgroud)我正在尝试访问OData源提供程序,特别是SAP HANA通过Odata服务公开的分析视图.我在odata上应用了一个包含数字的过滤器,但是我收到的错误是因为支持使用该号码
"Operator 'eq' incompatible with operand types 'Edm.Decimal' and 'Edm.String'
Run Code Online (Sandbox Code Playgroud)
这是我访问资源的方式:
analyticView.xsodata/analyticView?$select=AMOUNT_SOLD,FAMILY_NAME&$filter=SALE_PRICE%20eq%20'323.7'&$format=json
Run Code Online (Sandbox Code Playgroud)
我还试图从号码中删除引号
analyticView.xsodata/analyticView?$select=AMOUNT_SOLD,FAMILY_NAME&$filter=SALE_PRICE%20eq%20323.7&$format=json
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
"Operator 'eq' incompatible with operand types 'Edm.Decimal' and 'Edm.Double'."
Run Code Online (Sandbox Code Playgroud)
您能否查看问题是什么以及解决方法.
我写了一个XML视图.里面有一张桌子:
<Table xmlns="sap.m"
id="myTable"
select=""
selectionChange=""
swipe=""
growingStarted=""
growingFinished=""
updateStarted=""
updateFinished=""
itemPress="console.log('clicked on item')"
>
<columns>
<!-- sap.m.Column -->
</columns>
<items>
<!-- sap.m.ListItemBase -->
</items>
</Table>
Run Code Online (Sandbox Code Playgroud)
我使用onInit控制器将行插入表中,但是当我单击一行时,消息不会显示.
我想在sap.m主视图中将像结构这样的文件夹映射到列表控件.
请看看名为Shopping Cart的演示应用程序.您将看到Master-> Master-> Detail导航.从类别到产品到(产品)详细信息.
我已经研究过源代码了.上面的导航是使用路由实现的.
对于我的项目,我想有类似的东西.然而,它不是简单的M-> M-> D结构.我的数据将从SAP Enterprise Portal文件夹结构以JSON格式接收.每个文件夹可以包含其他文件夹或文件.数据结构可能是这样的,但可能有n级文件夹:
{ "root": [
{ "name" : "Folder A",
"isCollection": true,
"content" : [
{ "name" : "Sub Folder A",
"isCollection": true,
"content" : [
{"filename":"IpsumPrimisIn.xls","datatype":"application/vnd.ms-excel"},{"filename":"IdOrnare.mp3","datatype":"audio/x-mpeg-3"}
]
}
]
},
{ "name" : "Folder B",
"isCollection": true,
"content" : [
{ "name" : "Sub Folder B",
"isCollection": true,
"content" : [
{"filename":"IpsumPrimisIn.xls","datatype":"application/vnd.ms-excel"}{"filename":"Non.mov","datatype":"video/quicktime"}
]
}
]
}
] }
Run Code Online (Sandbox Code Playgroud)
请注意,文件夹结构将会发生变化,并且随着时间的推移可能会变得更加多样化和更加深入.
理想的解决方案是动态地读取,调整JSON结构并将其映射到某种SAPUI5路由逻辑.这可能吗?有一个路由器实例,循环我的JSON结构,在其上调用addRoute()并动态添加文件夹作为路由...
注意:我已经知道如何基于SAP EP文件夹创建JSON结构.
我目前正面临着在SAPUI5中实现滑块的挑战,就像Webdynpro的Threshold-Slider一样,看起来像这样.

你会怎么做?它是高度动态的,比例(可以是5个值,可以是3个值等),描述取决于比例值......
目前我只在API中找到Slider,但我怀疑这是可以实现的......任何想法?
18.06.2015:目前我正在努力扩展sap.ui.commons.Slider,我现在得到的东西远离我试图实现的目标:
我得到了什么......
sap.ui.commons.Slider.extend("my.Slider", {
renderer : {
renderInnerAttributes : function(oRm, oControl) {
console.log(oRm); // try to find out, what I re-style
console.log(oControl); // try to find out, what I re-style
oRm.addStyle('background-color', '#ffff00'); // no effect
},
}
});
var oSlider6 = new my.Slider({
id : 'Slider6',
tooltip : 'Slider6',
width : '500px',
min : 1,
max : 4,
value : 0,
totalUnits : 4,
smallStepWidth : 1,
stepLabels : true,
labels : [ …Run Code Online (Sandbox Code Playgroud)