标签: sapui5

SAP UI5与其他Javascript框架?

只是想了解SAPUI5作为框架的位置.

(1)它是否像jQuery(包含实用函数,效果,动画等主机的库)或(2)它是否像Backbone,Angular,Ember等MVC库?

  • 如果是1,那怎么可能取代jQuery呢?
  • 如果是2,那么它对这些其他框架有什么优点和缺点.

除了它是SAP的专有框架之外,我真正想知道的是这个框架背后的原则和理念,以及它如何经得起前端时间的考验 -

  1. MV*构建应用程序的哲学
  2. 构建单页面应用程序
  3. 学习曲线以及其他框架,如Backbone,Angular(我的意思是,如果我学习SAPUI-5,我的学习曲线会增加或减少,或者它如何影响它)

最后可以(如果有!)我用其他框架创建SAPUI5的生态系统.

javascript backbone.js angularjs sapui5

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

安全问题是否使用基于https的GET请求发送密码有效?

我们有使用 -framework建立网页.浏览器和服务器之间的通信使用.登录页面的交互如下:

  1. 用户通过https://myserver.com在浏览器中输入来打开网站
  2. 将显示一个登录对话框,其中包含两个用于取消名称和密码的表单字段.
  3. 进入后username,并password和按login-button
  4. ajax-request使用GETURL 发送:https://myusername:myPassword@myserver.com/foo/bar/metadata

根据我的理解,使用GET发送敏感数据绝不是一个好主意.但这个对HTTPS的回答是url字符串安全说明如下

HTTPS Establishes an underlying SSL conenction before any HTTP data is
transferred. This ensures that all URL data (with the exception of
hostname, which is used to establish the connection) is carried solely
within this encrypted connection and is protected from
man-in-the-middle attacks in the same way that any HTTPS data is.
Run Code Online (Sandbox Code Playgroud)

在同一个帖子中的另一个答案: …

security authentication ssl https sapui5

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

ui5中的绑定,Context,ContextBinding和BindingContext

我几天来一直在思考上下文,上下文绑定和bindingcontext之间的内部和关系,我不确定我是否存在重大误解.也许你们中的一些人可以帮助我解决这个问题.我将我的假设放在下面.我可能想首先说我总是在这里使用oData模型.

这是我相信阅读文档的理解:

上下文是在一个模型中的数据对象的引用.

结合基本上是一个事件提供器,其(在单向结合时)观察到特定的上下文的状态,并且当它被改变/数据加载发射事件...并因此允许在该特定上下文注册的事件处理程序的事件.在编程对象方面,有属性绑定和列表绑定(这是真的 - 还是列表绑定所有相关的?).

无论如何,我的理解是列表绑定是组件聚合绑定的模型端,而属性绑定从组件和模型的角度被称为属性绑定(令人困惑?).

现在我不太了解的是:上下文绑定new sap.ui.model.ContextBinding(oModel, sPath, oContext, mParameters?, oEvents?):将路径和上下文作为参数.我假设这个oContext不完全是上面描述的上下文,但是关于绑定的一些元数据.它是否正确?或者这是路径参数相对于的p ath的定义?

当你想要创建一个上下文本身new sap.ui.model.Contextabov(oModel, sPath, oContext)再次获取一个上下文时,看起来也很奇怪.我相信这只是我看到的一个不幸的命名事项,但我不太确定.

然后是contextbinding和bindingcontext.我假设contextBinding是对特定上下文的绑定,如e所述.而bindingcontext是关于上下文或列表绑定的元数据.

从编程的角度来看,我不明白为什么以下工作:

  • 通过model.bindList()仅传递路径来创建列表绑定到上下文.
  • 将change-event处理程序附加到绑定
  • 呼吁get_contexts()绑定
  • 在change事件处理程序中接收数据(并查看模型中填充的oData-property).

似乎没有办法对属性绑定做同样的事情,我认为我可以通过它生成model.bindProperty().我可以生成绑定,但我收到的绑定似乎没有实际获取数据的句柄.

我希望漫步解释我的问题.如果你问:你想做什么?我实际上不想对它做任何事情,我只是不太明白这是如何工作的.绑定到ui控件等工作得很好,但我更愿意真正了解引擎盖下的内容.我一直在阅读调试文件和单元测试,但与你们讨论它似乎也是一个很好的方法.

如果不清楚,我会很乐意添加任何有用的东西.

干杯米歇尔

sapui5

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

Toutorial错误"validate_display:255错误3008(EGL_BAD_DISPLAY)"

我是javascript和android的新手,我想用SAPUI5编写一个多页应用程序.为此,我发现了一个教程: https://sapui5.hana.ondemand.com/sdk/#docs/guide/df86bfbeab0645e5b764ffa488ed57dc.html 工作正常,达到漫步-第8步:我有完全的相同的源代码我项目,但它不起作用.我收到以下错误:

  E/Zygote: MountEmulatedStorage()
E/Zygote: v2
E/SELinux: [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL
E/SysUtils: ApplicationContext is null in ApplicationStatus
E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
E/AndroidProtocolHandler: Unable to open asset URL: file:///android_asset/i18n/i18n_de_DE.properties
Run Code Online (Sandbox Code Playgroud)

我知道第一个和第二个,但我找不到其他信息.

有谁知道他们来自哪里以及如何解决?

的answere:

我不知道实际上是什么问题.我尝试使用SDK版本并获得许多gradle错误.在我解决之后,我使用了步骤7中的代码,仅添加了黄色线条并删除了要删除的内容.

javascript android sapui5

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

表列和行的动态绑定

我遇到麻烦,我的表列和行的动态绑定工作.

假设我有两个模型,一个持有表列信息:

    var aColumnData = [
        {
            columnId : "col1"
        },
        {
            columnId : "col2"
        },
        {
            columnId : "col3"
        },
        {
            columnId : "col4"
        },
        {
            columnId : "col5"
        }
    ];
Run Code Online (Sandbox Code Playgroud)

和一个数据:

var aData = [
    {
        col1 : "Row 1 col 1",
        col2 : "Row 1 col 2",
        col3 : "Row 1 col 3",
        col4 : "Row 1 col 4",
        col5 : "Row 1 col 5"
    },
    {
        col1 : "Row 2 col 1",
        col2 : "Row 2 …
Run Code Online (Sandbox Code Playgroud)

sapui5

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

SAPUI5 - 如何将Odata $ count绑定到XML视图

可能这是一个基本问题,但我在XML视图中绑定Odata计数时遇到问题.

比方说,在下面的例子中,我想绑定Odata模型中的产品数量.

<List items="{/Categories}"} >  
  <ObjectListItem
    title="{CategoryName}"
    number="{path : 'Products/$count'}"
    numberUnit="Products"/>
</List>
Run Code Online (Sandbox Code Playgroud)

每个类别都需要显示相应类别中的产品数量.....如

/Categories(1)/Products/$count
/Categories(2)/Products/$count
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助.

sapui5

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

如何通过ID从XML片段访问元素

我正在使用SAPUI5应用程序.我有一个XML视图,其中包含一个XML 片段和一个要保存的按钮.

该片段包含一些控件,如下拉列表,文本字段和表格.当我按下保存按钮时,我需要获取表中的所有行并调用OData更新服务.

问题出onSave在视图控制器中的方法中.使用其ID访问表时出错.任何人都可以帮助我并建议如何通过控制器中的ID访问片段中使用的控件?

这是代码片段:

----查看

<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns:form="sap.ui.layout.form" xmlns="sap.m">
  <Page>
    ...
    <form:SimpleForm>
      <core:Fragment id ="fr1" fragmentName="first" type="XML"/>
      <Button id="id1" press="onSave"/>
    </form:SimpleForm>
  </Page>
</mvc:View>
Run Code Online (Sandbox Code Playgroud)

----片段定义

<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core">
  <Table id="tab1" mode="MultiSelect">
    ...
  </Table>
</core:FragmentDefinition>
Run Code Online (Sandbox Code Playgroud)

----控制器

sap.ui.controller("view", {
  onSave: function() {
    //var tab = this.getView().byId("tab1"); // Not working
    var tab  = sap.ui.getCore().byId("tab1"); // Not working
  },
  // ...
});
Run Code Online (Sandbox Code Playgroud)

sapui5

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

每次查看页面时如何执行代码

我每次查看页面时都会搜索模式以执行代码(在我的情况下,检索数据以便从服务器可视化)(每个tipe页面都由splitApp.toDetail或splitApp.backDetail调用).我该怎么做??onBeforeRendering和onAfterRendering仅在第一次执行..

sapui5

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

OData V4更改未在其他绑定中反映出来

我创建了一个UI5主 - 详细信息页面:

<List items="{som>/Users}">
  <StandardListItem
    type="Navigation"
    press="onItemPress"
    title="{som>UserName}"
  />
</List>
Run Code Online (Sandbox Code Playgroud)
onItemPress: function(oEvent) {
  var oUserContext = oEvent.getSource().getBindingContext("som");
  var oUser = oUserContext.getObject();
  this.getRouter().navTo("userDetails", {userId: oUser.Id});
}
Run Code Online (Sandbox Code Playgroud)

详情

onInit: function () {
  var route = this.getRouter().getRoute("userDetails");
  route.attachPatternMatched(this._onObjectMatched, this);
},

_onObjectMatched: function (oEvent) {
  var sUserId = oEvent.getParameter("arguments").userId;
  this.getView().bindElement({
    path: "som>/Users('"+sUserId+"')",
    model: "som"
  });
},

reload: function() {
  this.getView().getModel("som").refresh();
},
Run Code Online (Sandbox Code Playgroud)
<fLayout:SimpleForm id="userForm">
  <Button text="reload" press="reload"/>
  <Label text="{i18n>settings.user.id}"/>
  <Input editable="false" value="{som>Id}"/>
  <Label text="{i18n>settings.user.username}"/>
  <Input value="{som>UserName}"/>
  <Label text="{i18n>settings.user.email}"/>
  <Input value="{som>Email}"/>
  <Label text="{i18n>settings.user.firstname}"/>
  <Input …
Run Code Online (Sandbox Code Playgroud)

odata sapui5

11
推荐指数
2
解决办法
1026
查看次数

使用SplitApp中的动画导航到相同的详细信息视图

我正在使用具有以下功能的拆分应用

  1. 主列表
  2. 3详细页面

主列表显示项目列表(例如,此处的自行车和汽车列表)

这是3个详细信息页面:

  1. 消息页面:当未在主列表上单击任何内容时,表示找不到/欢迎页面。
  2. BikeProperties页:如果单击“ Bike”,则显示详细信息。
  3. CarProperties页面:显示是否单击了Car。

现在,问题是当我单击“汽车产品”时,显示了一个动画,该动画从欢迎页面导航到汽车页面。

但是,如果我再次单击汽车产品,则绑定将更新而没有动画。

同样,如果我此时(选择汽车之后)选择了“ Bike”,则导航会随动画一起进行。

所以,总结一下,

  1. 如果再次在详细页面中显示同一页面,则不会显示动画。
  2. 加载不同的详细信息页面时,将显示动画。

但是,我想要的是,无论当前显示的是哪个详细信息页面,导航都应该使用动画再次进行,以便保持与动画的一致性。

另外,请注意,我不能使用基于哈希的路由,因为此拆分应用程序需要在对话框中显示。

下面是虚拟代码:

App.view.xml

<mvc:View controllerName="com.sap.SplitApp.controller.App" xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" displayBlock="true"
xmlns="sap.m">
<Shell id="shell">
    <App>
        <SplitApp id="app">
            <masterPages>
                <Page>
                    <List items='{/items}' selectionChange="handleNavigate" mode='SingleSelectMaster'>
                        <items>
                            <StandardListItem title='{name}' info='{type}'/>
                        </items>
                    </List>
                </Page>
            </masterPages>
            <detailPages>
                <MessagePage title='Hello!' text='Select a Product'></MessagePage>
                <core:Fragment fragmentName="com.sap.SplitApp.fragments.BikeProperties" type="XML"/>
                <core:Fragment fragmentName="com.sap.SplitApp.fragments.CarProperties" type="XML"/>
            </detailPages>
        </SplitApp>
    </App>
</Shell>
Run Code Online (Sandbox Code Playgroud)

App.controller.js

onInit: function () {
        var items = [
            {
                name: 'Thunderbird 500cc',
                type:'Bike'
            },
            {
                name: 'Swift',
                type:'Car' …
Run Code Online (Sandbox Code Playgroud)

javascript navigation sap sapui5

11
推荐指数
1
解决办法
138
查看次数