代码之家  ›  专栏  ›  技术社区  ›  Chan Yoong Hon

SAPUI5将数据从一个视图传递到另一个视图

  •  0
  • Chan Yoong Hon  · 技术社区  · 6 年前

    下面是我的源代码

    onShoppingCartPressed: function(){
        var viewCartData = {
            "Customer" : SelectedCustomer,
            "Salesman" :  SelectedSalesman,
            "TxnKey" : "TXN1000103"
        };
        this._oRouter.navTo("ViewCarts", viewCartData);
     }
    

    视图2。控制器.js

        onInit: function () {          
                    this._oRouter.getRoute("ViewCarts")
                   .attachMatched(this._onRouteMatched, this);  
               },
    
       _onRouteMatched: function(oEvent) {
                            console.log(oEvent.getParameter("arguments"));
                        },
    

    清单.json

        "routing": {
            "config": {
                "routerClass": "sap.f.routing.Router",
                "viewType": "XML",
                "viewPath": "com.accenture.newspage.order.ui.order-ui.view",
                "controlId": "flexibleColumnLayout",
                "transition": "slide",
                "controlAggregation": "beginColumnPages",
                "bypassed": {
                    "target": [
                        "notFound"
                    ]
                },
                "async": true
            },
            "routes": [
                {
                  "pattern": "orderDetail/{order}/{layout}",
                  "name": "orderDetail",
                  "target": [
                    "order",
                    "orderDetail"
                  ]
                },
                {
                    "pattern": "ViewCarts",
                    "name": "ViewCarts",
                    "target": "viewCarts"
                }
            ],
            "targets": {
                "worklist": {
                    "viewName": "Worklist",
                    "viewId": "worklist",
                    "viewLevel": 1
                },
                "viewCarts": {
                    "viewName": "ViewCart",
                    "viewId": "ViewCartPage",
                    "viewLevel": 1
                }
            }
        }
    

    2 回复  |  直到 6 年前
        1
  •  1
  •   Matthijs Mennens    6 年前

    在我的选择中,你似乎有两个选择。如果我错了就纠正我。

    希望这有帮助。

    显示

     {
        "pattern": "ViewCarts/customer/{Customer}/Salesman/{Salesman}/key/{TxnKey}",
        "name": "ViewCarts",
        "target": "ViewCarts"
    }
    

        onShoppingCartPressed: function(oEvent) {
            var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
            oRouter.navTo("viewCarts", {
                Customer: "XXXXXXXXXXXX", // can't be an object
                Salesman: "xxxxxxxxxxxx",
                TxnKey  : "TXN1000103"
            });
        }
    

    接收控制器

        onInit: function() {
            var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
            oRouter.getRoute("viewCarts").attachMatched(this._onRouteMatched, this);
        },
    
        _onRouteMatched: function(oEvent) {
            var customer = oEvent.getParameter("arguments").Customer;
            var salesman = oEvent.getParameter("arguments").Salesman;
            var key = oEvent.getParameter("arguments").TxnKey;
        }
    

    方案2

    显示

    发送控制器

        onShoppingCartPressed: function(oEvent) {
            var viewCartData = {
                "Customer": "XXXXXXXXXXXX",
                "Salesman": "xxxxxxxxxxxx",
                "TxnKey": "TXN1000103"
            };
    
            var oModel = new sap.ui.model.json.JSONModel(viewCartData);
            this.getOwnerComponent().setModel(oModel, "viewCartData");
            // OR sap.ui.getCore().setModel(oModel, "viewCartData");
    
            var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
            oRouter.navTo("viewCarts");
        }
    

    接收控制器

    onInit: function() {
            var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
            oRouter.getRoute("viewCarts").attachMatched(this._onRouteMatched, this);
        },
    
        _onRouteMatched: function(oEvent) {
            var oModel = this.getView().getModel("viewCartData");
            // OR var oModel = sap.ui.getCore().getModel("viewCartData");
        }
    
        2
  •  1
  •   grimaldello    6 年前

    sessionStorage .

    它允许您保存几乎所有内容(也包括javascript) Object

    sessionStorage.setItem('myKeyString', 'myString'); //Set value
    sessionStorage.getItem('myKeyString');  // Get saved string
    sessionStorage.setItem('myObject', JSON.stringify({"key": "value"})); // Save object
    JSON.parse(sessionStorage.getItem('myObject')); // Get saved object