如何在MVC中绑定数据

Rya*_*yan 1 sapui5

我有一个视图页面:

sap.ui.jsview("mvc.oPage1", {

    getControllerName : function() {
        return "mvc.oPage1";
    },

    createContent : function(oController) {
        var oPage1 = new sap.m.Page({
            title : "something",
            enableScrolling : true,
            footer : new sap.m.Bar({
                id : 'page1_footer',
                contentMiddle : [ new sap.m.Button({

                })]
            })
        });

        oTable = new sap.m.Table({
            id: "first_table",
            inset : true,
            visible : true,
            getIncludeItemInSelection : true,
            showNoData : false,
            columns : [ new sap.m.Column({
                styleClass : "name",
                hAlign : "Left",
                header : new sap.m.Label({

                })
            }) ]
        });

        var template = new sap.m.ColumnListItem({
            id: "first_template",
            type : "Navigation",
            visible : true,
            selected : true,
            cells : [ new sap.m.Label({
                text : "{name}"
            }) ]
        });

        var oModel1 = sap.ui.getCore().getModel("jsonModel");
        oTable.setModel(oModel1);
        oTable.bindItems("/landscapes", template);
        oPage1.addContent(oTable);

        return oPage1;
    }
});
Run Code Online (Sandbox Code Playgroud)

我有一个包含json数据的控制器页面:

sap.ui.controller("mvc.oPage1", {

    onInit: function() {

        var jsonData = {
            "landscapes" : []
        };
        $.getJSON(URI, {}).done(function(data) {
            $.each(data.landscapes, function(i, field) {
                jsonData.landscapes.push({
                    "name" : field
                });
            });
        }).fail(function() {
            alert("Error");
        });

        var oModel = new sap.ui.model.json.JSONModel();
        oModel.setData(jsonData);
        sap.ui.getCore().setModel(oModel, "jsonModel");
    },
});
Run Code Online (Sandbox Code Playgroud)

我无法让绑定工作.如您所见,我想在视图中将jsonData连接到模板,并在表列中显示它.

Man*_*arz 5

你有两个解决方案:

1.您可以删除"jsonModel"

sap.ui.getCore().setModel(oModel, "jsonModel");
Run Code Online (Sandbox Code Playgroud)

2.或者您可以将jsonModel>添加到数据绑定中

oTable.bindItems("jsonModel>/landscapes", template);
Run Code Online (Sandbox Code Playgroud)