将数据从母版传递到详细信息页面

J0eBl4ck

我看了一些有关导航+在视图之间传递数据的教程,但是在我的情况下不起作用。我的目标是实现以下目标:

  1. 用户可以在MainPage上看到包含产品的表(JSON文件)。(工作正常!)
  2. 按下“详细信息”按钮后,将显示详细信息页面(“表单”),其中包含有关选择的所有信息。

导航工作正常,并且正在显示“详细信息”页面,但是数据绑定似乎不起作用(未显示任何数据)。我的想法是将JSON字符串传递给“详细信息页面”。我该如何实现?还是有一种更优雅的方式?

这是到目前为止的代码:

MainView控制器

sap.ui.controller("my.zodb_demo.MainView", {

    onInit: function() {
        var oModel = new sap.ui.model.json.JSONModel("zodb_demo/model/products.json");

        var mainTable = this.getView().byId("productsTable");
        this.getView().setModel(oModel);
        mainTable.setModel(oModel);
        mainTable.bindItems("/ProductCollection", new sap.m.ColumnListItem({
            cells: [new sap.m.Text({
                text: "{Name}"
            }), new sap.m.Text({
                text: "{SupplierName}"
            }), new sap.m.Text({
                text: "{Price}"
            })]
        }));
    },

    onDetailsPressed: function(oEvent) {
        var oTable = this.getView().byId("productsTable");

        var contexts = oTable.getSelectedContexts();
        var items = contexts.map(function(c) {
            return c.getObject();
        });

        var app = sap.ui.getCore().byId("mainApp");
        var page = app.getPage("DetailsForm");

        //Just to check if the selected JSON String is correct
        alert(JSON.stringify(items));


        //Navigation to the Detail Form
        app.to(page, "flip");
    }
});

详细表格视图:

<mvc:View xmlns:core="sap.ui.core" xmlns="sap.m" xmlns:f="sap.ui.layout.form" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc" controllerName="my.zodb_demo.DetailsForm">
  <Page title="Details" showNavButton="true" navButtonPress="goBack">
    <content>
      <f:Form id="FormMain" minWidth="1024" maxContainerCols="2" editable="false" class="isReadonly">
        <f:title>
          <core:Title text="Information" />
        </f:title>
        <f:layout>
          <f:ResponsiveGridLayout labelSpanL="3" labelSpanM="3" emptySpanL="4" emptySpanM="4" columnsL="1" columnsM="1" />
        </f:layout>
        <f:formContainers>
          <f:FormContainer>
            <f:formElements>
              <f:FormElement label="Supplier Name">
                <f:fields>
                  <Text text="{SupplierName}" id="nameText" />
                </f:fields>
              </f:FormElement>
              <f:FormElement label="Product">
                <f:fields>
                  <Text text="{Name}" />
                </f:fields>
              </f:FormElement>
            </f:formElements>
          </f:FormContainer>
        </f:formContainers>
      </f:Form>
    </content>
  </Page>
</mvc:View>

明细表控制器:

sap.ui.controller("my.zodb_demo.DetailsForm", {

    goBack: function() {
        var app = sap.ui.getCore().byId("mainApp");
        app.back();
    }
});
确定性失败

在控制器之间传递数据的推荐方法是使用EventBus

sap.ui.getCore().getEventBus();

您可以在控制器之间定义通道和事件。在您的DetailController上,您预订一个如下事件:

onInit : function() {
    var eventBus = sap.ui.getCore().getEventBus();
    // 1. ChannelName, 2. EventName, 3. Function to be executed, 4. Listener
    eventBus.subscribe("MainDetailChannel", "onNavigateEvent", this.onDataReceived, this);)
},

onDataReceived : function(channel, event, data) {
   // do something with the data (bind to model)
   console.log(JSON.stringify(data));
}

然后在您的MainController上发布事件:

...
//Navigation to the Detail Form
app.to(page,"flip");
var eventBus = sap.ui.getCore().getEventBus();
// 1. ChannelName, 2. EventName, 3. the data
eventBus.publish("MainDetailChannel", "onNavigateEvent", { foo : "bar" });
...

请参阅此处的文档:https : //openui5.hana.ondemand.com/docs/api/symbols/sap.ui.core.EventBus.html#subscribe

还有一个更详细的示例:http : //scn.sap.com/community/developer-center/front-end/blog/2015/10/25/openui5-sapui5-communication-between-controllers --using-publish- and从事件总线订阅

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用XAML和Xamarin将母版页注入到母版详细信息页面

来自分类Dev

使用PHP将数据从可点击表格行传递到详细信息页面

来自分类Dev

将数据从表视图传递到详细信息视图时,详细信息视图未更新

来自分类Dev

无法将数据从集合视图传递到 Xcode 中的详细信息视图

来自分类Dev

将数据从视图控制器传递到第一个详细信息控制器,然后传递到第二个详细信息控制器

来自分类Dev

贝宝:如何获取订单ID并传递到交易详细信息页面

来自分类Dev

如何从详细信息页面导航到主详细信息页面?

来自分类Dev

将int和字符串值从母版页传递到内容页

来自分类Dev

如何通过点击到 Ionic 3 上的另一个页面,将详细信息传递到从 Firebase 收到的 <ion-item> 中?

来自分类Dev

我想使用链接将道具传递到我的用户详细信息页面

来自分类Dev

高图-母版详细信息-多种颜色的母版

来自分类Dev

从plist在segue中传递数据。表视图到详细信息视图

来自分类Dev

如何将详细信息模型从控制器传递到视图

来自分类Dev

使用Selenium(C#)将详细信息传递到弹出窗口

来自分类Dev

如何将详细信息模型从控制器传递到视图

来自分类Dev

为 xamarin.forms 母版页添加标题包含 TabbedPage 作为详细信息页面

来自分类Dev

如何强制Apollo Client将缓存的数据用于详细信息视图页面

来自分类Dev

如何根据用户详细信息将值从数据库传递给标签

来自分类Dev

如何将鼠标焦点设置到WPF数据网格的行详细信息?

来自分类Dev

canhanDatabase:如何将数据从非详细信息表移至详细信息表?

来自分类Dev

将详细信息传递给凌空内部类

来自分类Dev

如何从SplitApp删除母版页或详细信息页?

来自分类Dev

.net Web表单不显示母版页详细信息

来自分类Dev

将详细信息从一个窗口传递到另一个窗口

来自分类Dev

如何将详细信息从“回收者”视图传递到另一个活动?

来自分类Dev

如何将Mapkit坐标从视图控制器(mapView)传递到详细信息控制器(mapView)

来自分类Dev

无法使用母版页将数据从一个内容页面传递到另一内容页面

来自分类Dev

共享点详细信息页面

来自分类Dev

Facebook管理页面详细信息

Related 相关文章

  1. 1

    使用XAML和Xamarin将母版页注入到母版详细信息页面

  2. 2

    使用PHP将数据从可点击表格行传递到详细信息页面

  3. 3

    将数据从表视图传递到详细信息视图时,详细信息视图未更新

  4. 4

    无法将数据从集合视图传递到 Xcode 中的详细信息视图

  5. 5

    将数据从视图控制器传递到第一个详细信息控制器,然后传递到第二个详细信息控制器

  6. 6

    贝宝:如何获取订单ID并传递到交易详细信息页面

  7. 7

    如何从详细信息页面导航到主详细信息页面?

  8. 8

    将int和字符串值从母版页传递到内容页

  9. 9

    如何通过点击到 Ionic 3 上的另一个页面,将详细信息传递到从 Firebase 收到的 <ion-item> 中?

  10. 10

    我想使用链接将道具传递到我的用户详细信息页面

  11. 11

    高图-母版详细信息-多种颜色的母版

  12. 12

    从plist在segue中传递数据。表视图到详细信息视图

  13. 13

    如何将详细信息模型从控制器传递到视图

  14. 14

    使用Selenium(C#)将详细信息传递到弹出窗口

  15. 15

    如何将详细信息模型从控制器传递到视图

  16. 16

    为 xamarin.forms 母版页添加标题包含 TabbedPage 作为详细信息页面

  17. 17

    如何强制Apollo Client将缓存的数据用于详细信息视图页面

  18. 18

    如何根据用户详细信息将值从数据库传递给标签

  19. 19

    如何将鼠标焦点设置到WPF数据网格的行详细信息?

  20. 20

    canhanDatabase:如何将数据从非详细信息表移至详细信息表?

  21. 21

    将详细信息传递给凌空内部类

  22. 22

    如何从SplitApp删除母版页或详细信息页?

  23. 23

    .net Web表单不显示母版页详细信息

  24. 24

    将详细信息从一个窗口传递到另一个窗口

  25. 25

    如何将详细信息从“回收者”视图传递到另一个活动?

  26. 26

    如何将Mapkit坐标从视图控制器(mapView)传递到详细信息控制器(mapView)

  27. 27

    无法使用母版页将数据从一个内容页面传递到另一内容页面

  28. 28

    共享点详细信息页面

  29. 29

    Facebook管理页面详细信息

热门标签

归档