在根视图的onInit()中设置模型时出错-没有错误/没有日志

时间:2018-07-24 09:53:17

标签: sapui5 jsonmodel

我正在尝试在new JSONModel(根视图)上设置Main.view.xml。 但似乎它停在.setModel()console.log("after")未记录。

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "jquery.sap.global",
    "sap/m/MessageToast",
    "sap/ui/model/json/JSONModel"
   ], function (Controller, JSONModel, MessageToast) {
   "use strict";
   return Controller.extend("sap.ui.bookedTimes.wt.controller.Main", {       
        onInit   : function () {            
            var jModel = this.getOwnerComponent().getModel("zCatsTestJ");
            var that = this;    
            jModel.attachRequestCompleted(function() {                  
                console.log(that.getView());
                var oViewModel= new JSONModel({workdate: "test"});
                console.log("before");
                that.getView().setModel(oViewModel, "view");
                console.log("after");
                console.log(that.getView().getModel("view"));    
            });
        },
   });
});

Error in console

manifest.json中的条目:

"sap.ui5": {
    "rootView" : {
        "viewName":"sap.ui.bookedTimes.wt.view.Main", 
        "id": "mainview",                                              
        "type": "XML"                                  
     },

根视图的onInit()中有问题吗?

更新: 我应该已经添加了xml.view的一部分。我将视图名称更改为“ view1”,并记录了控制器的所有内容。问题是我的观点仍在期待约会

<Text text="{ path: 'view1>/workdate', type: 'sap.ui.model.type.Date', formatOptions: { pattern: 'dd.MM.yyyy' } }" />

将其更改为文本后,即可正常工作。 无论如何,最初的问题是定义的顺序

谢谢大家

1 个答案:

答案 0 :(得分:0)

您的进口商品似乎已关闭。尝试像这样修复它(注意define([])块)

sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/model/json/JSONModel",
"sap/m/MessageToast"
], function (Controller, JSONModel, MessageToast) {
"use strict";
return Controller.extend("sap.ui.bookedTimes.wt.controller.Main", {       
    onInit   : function () {            
        var jModel = this.getOwnerComponent().getModel("zCatsTestJ");
        var that = this;    
        jModel.attachRequestCompleted(function() {                  
            console.log(that.getView());
            var oViewModel= new JSONModel({workdate: "test"});
            console.log("before");
            that.getView().setModel(oViewModel, "view");
            console.log("after");
            console.log(that.getView().getModel("view"));    
        });
    },
});
});

现在您应该正确导入了JSONModel,并且不会看到任何错误。