小编mat*_*btt的帖子

如何从控件获取父视图/片段

如何检索View/ Fragmenta sap.ui.core.Control属于?

BR克里斯

controls viewcontroller sapui5 sap-fiori

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

如何在SAPUI5中默认禁用Odata Batch请求?

我在Web IDE for SAPUI5中创建了一个Master-Details应用程序.

我将我的应用程序连接到OData服务.连接参数已存储在manifest.json.

我想阻止我的UI5应用程序在从OData端点请求数据时使用批处理请求.

我知道如何使用以下代码禁用特定请求的批处理请求:

var oDataModel = this.getModel();
oDataModel.setUseBatch(false);
Run Code Online (Sandbox Code Playgroud)

但问题是我无法在onInit功能中使用它.我可以设置一些参数manifest.json来禁用批量请求,即使程序加载时也不使用批处理吗?

odata sapui5

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

如何在sap.ui.core.Icon中显示glyphicon/font-awesome?

由于SAPUI5/OpenUI5中的图标集非常有限,我想在sap.ui.core.Icon中显示glyphicons和/或font-awesome图标.

怎么能实现这一目标?

font-awesome glyphicons sapui5

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

我怎样才能获得当前路线?

无论如何我可以获得当前的路线名称吗?有一个getRoute功能,但我必须自己传递路由名称.如果有办法从控制器中的路由器对象获取所有路由的名称,它对我有帮助.例如:

this.getRouter().getRoutes()
Run Code Online (Sandbox Code Playgroud)

有一个功能,getViews但我找不到相同的路线.

sapui5

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

是否可以在一个视图中使用2个模型

我坚持认为SAPUI5中是否可以使用概念,并且由于文档在这个详细程度上可能有点难以处理,我在研究路径中提出的问题比正常情况要早.主要是我不想花太多时间,如果有一个立即'否'的答案.

我有一个使用JSON模型的主视图的用例,但我必须生成自己的控件 - 我不能使用SplitApp等.

该模型实际上是一个2层深的树,主要导致细节.从概念上讲是这样的:

{ 
    "master": [
        {
            "name": "Master 1",
            "detail" : [
                {
                "name": "Detail 1-1"
                },
                {
                "name": "Detail 1-2"
                }
            ]
        },
        {
            "name": "Master 2",
            "detail" : [
                {
                "name": "Detail 2-1"
                },
                {
                "name": "Detail 2-2"
                }
            ]
        }
    ]
}   
Run Code Online (Sandbox Code Playgroud)

UX是一个可选择的主列表,当进行选择时,将刷新详细列表控件以显示所选主节点的子节点的详细信息.

我熟悉将模型绑定到视图

sap.ui.getCore().setModel(oModel) 
this.getView().setModel(oModel)
Run Code Online (Sandbox Code Playgroud)

但是根据我迄今为止的学习情况,这会将视图中的所有控件绑定到一个模型.

我认为可能值得追求的选择是:

  1. 将单独的模型绑定到每个主控制和详细控制,并编写自定义代码以在选择主控时切换详细模型.但是如何制作这样的绑定;
  2. 使用单个模型,但以某种方式设置细节控件以识别"当前选定的"主控.
  3. 在细节控制上使用某种过滤器.

进一步解释2,如果说我正在使用表格进行详细显示,我可能会在表格def中使用

   <Table
            id="detailList"
            items="{
                path: '/'
            }",
            ...
     >
Run Code Online (Sandbox Code Playgroud)

所以我希望修改类似的路径

path: '/master[n]/detail/'
Run Code Online (Sandbox Code Playgroud)

其中n表示选定的主实例.

是可能的,还是有另一种选择,或者我应该放弃.

编辑:我在这里发现了Michael Herzog这种基于过滤器的潜在解决方案.他的描述是:

我将举例说明如何在SAPUI5中实现matser-detail关系.

使用案例:当用户点击第一个表中的客户端时,所有相关订单都应显示在第二个表中.应隐藏其他客户的订单.

因此,在我们看来,我们有两个表:

  1. 表:客户

  2. 表:订单 …

sapui5

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

使用参数进行路由不起作用

我在这里按照教程进行操作,并且遇到了参数路由问题.

示例应用程序没有在我的本地使用上运行,因此我将其更改为使用本地数据.但是,当我点击发票列表中的元素时,我收到错误"未捕获错误:无效值"发票/ 1"用于段"{invoicePath}"".它应该打开一个新的详细信息页面并显示产品名称和数量.

这是我的路由清单:

"routing": {
      "config": {
        "routerClass": "sap.m.routing.Router",
        "viewType": "XML",
        "viewPath": "sap.ui.demo.wt.view",
        "controlId": "app",
        "controlAggregation": "pages"
      },
      "routes": [
        {
          "pattern": "",
          "name": "overview",
          "target": "overview"
        },
        {
          "pattern": "detail/{invoicePath}",
          "name": "detail",
          "target": "detail"
        }
      ],
      "targets": {
        "overview": {
          "viewName": "Overview"
        },
        "detail": {
          "viewName": "Detail"
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

Invoices.json示例数据:

{
  "Invoices": [
    {
      "ProductName": "Pineapple",
      "Quantity": 21,
      "ExtendedPrice": 87.2000,
      "ShipperName": "Fun Inc.",
      "ShippedDate": "2015-04-01T00:00:00",
      "Status": "A"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

InvoiceList.controller.js.我填写发票列表并调用视图更改的位置.

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/model/json/JSONModel",
    "sap/ui/demo/wt/model/formatter", …
Run Code Online (Sandbox Code Playgroud)

sapui5

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

如何将所有者组件设置为视图?

如果我在运行时创建一个视图及其控制器,我怎样才能将它连接到组件,而当我调用getOwnerComponent它时返回组件.

我找不到任何setOwnerComponent控制器或视图.

sapui5

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

无法在片段对话框中获取控件

我面临以下问题。我有一个片段:

<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:layout="sap.ui.layout" >
    <Dialog title="Hints" class="sapUiPopupWithPadding" contentWidth="60%">
        <content>
            <Table id="tblHintList" mode="SingleSelect" items="{HintList>/}" growing="true" growingThreshold="10" selectionChange="onGetSelectedHints">

            </Table>
        </content>         
    </Dialog>
</core:FragmentDefinition>
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我想通过 ID 访问表,如下所示:

var table = this.getView().byId("tblHintList");

this.getView().addDependent(Fragment)即使我打电话并且数据绑定正在工作,这也不起作用。

如何访问片段中定义的控件?

javascript sapui5

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

新的sap.ui.model.odata.ODataModel和读取有什么区别?

我正在玩OData服务,我很困惑何时使用它

var oModel = new sap.ui.model.odata.ODataModel("proxy/http/services.odata.org/V3/(S(k42qhed3hw4zgjxfnhivnmes))/OData/OData.svc");
this.getView().setModel(oModel);
Run Code Online (Sandbox Code Playgroud)

VS

var oModel = new sap.ui.model.odata.ODataModel("odatserviceurl", true);
var productsModel = new JSONModel();

oModel.read("/Products",
     null,
     null,
     false,
     function _OnSuccess(oData, response) {
         var data = { "ProductCollection" : oData.results };
         productsModel.setData(data);
     },
     function _OnError(error) {
         console.log(error);
     }
);
this.getView().setModel(productsModel);
Run Code Online (Sandbox Code Playgroud)

我有两个使用这两种方法的工作示例,但我无法弄清楚为什么使用read方法,如果我可以实现与第一个版本相同.请向我解释或指导可以解决我的困惑的文件.

odata sapui5

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

事件触发器本身

我不知道为什么只有当按下按钮时才能运行的功能.

这是我的按钮声明:

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 ...

javascript sapui5

0
推荐指数
1
解决办法
88
查看次数

SAP FIORI中的语义对象

在SAP Fiori Launchpad配置期间,我们使用语义对象.什么是语义对象以及它在SAP FIORI中使用的原因?

感谢致敬,

Teja公司

sap-fiori

0
推荐指数
1
解决办法
8483
查看次数