【问题标题】:how to check if the json object has a child如何检查json对象是否有孩子
【发布时间】:2023-03-12 15:30:02
【问题描述】:

我有一个 sapui5 树表,它有 2 列(1:文本视图,2:下拉框)。表格数据:

var oData = [
                                {
            Scopes : "QT15", ExecutionGroup: "group2", 
            0 : {Scopes : "Job1",  ExecutionGroup: "",  
                0 : {Scopes : "Act1",  ExecutionGroup: "",
                    0 : {Scopes : "Material1",ExecutionGroup: ""},
                    1 : {Scopes : "Material2",ExecutionGroup: ""},
                    2 : {Scopes : "Material3",ExecutionGroup: ""}
                },
                1 : {Scopes : "Act2",  ExecutionGroup: ""},
                2 : {Scopes : "Act3",  ExecutionGroup: ""}
            },
            1 : {Scopes : "Job2",  ExecutionGroup: "", 
                0 : {Scopes : "11111",  ExecutionGroup: ""},
                1 : {Scopes : "22222",  ExecutionGroup: ""},
                2 : {Scopes : "33333",  ExecutionGroup: ""}
                }
            },
            {
            Scopes : "QT16",  ExecutionGroup: "",// ExecutionGroup: "exgroup1", 
            0 : {Scopes : "Job1",  ExecutionGroup: "", 
                0 : {Scopes : "11111",  ExecutionGroup: ""},
                1 : {Scopes : "22222",  ExecutionGroup: ""},
                2 : {Scopes : "33333",  ExecutionGroup: ""}
                },
            1 : {Scopes : "Job2",  ExecutionGroup: "", 
                0 : {Scopes : "11111",  ExecutionGroup: ""},
                1 : {Scopes : "22222",  ExecutionGroup: ""},
                2 : {Scopes : "33333",  ExecutionGroup: ""}
                }
            }
        ];

下拉数据: var 数据DD = [ {值:“group1”}, {值:“group2”}, {值:“group3”} ];

将数据绑定到模型:

var oModel = new sap.ui.model.json.JSONModel();
    oModel.setData({
    oData: oData,
    dataDD: dataDD
});

sap.ui.getCore().setModel(oModel);

模型绑定到表,DropDown 设置为列上的模板。 应该出现的功能,如果用户从 DD 中选择任何值, 该节点的所有子节点的默认 DD 值必须更改为该值。 DD 上的初始值为“group1”。如果父 DD 值更改为“group2”, 孩子的显示DD值必须设置为“group2”)。
我想触发 DD 更改的功能。

var oDropdownBox = new sap.ui.commons.DropdownBox({
    change: function(evt){

        var path = evt.getSource().getBindingContext().getPath();
        var value = evt.getSource().getValue();
        var currentContextObj = sap.ui.getCore().getModel().getProperty(path);

        console.log("path: " + path);
        refreshChilds();
    }
});

如何检查树上的节点是否有子节点?非常感谢!

【问题讨论】:

  • 判断json是否有子还是解析是否有子
  • 我想检查json对象(currentContextObj)是否有孩子。
  • 您是否从后端生成了 json-tree-stucture (var oData)?我不明白如何从我的后端生成这种数据......感谢任何提示!

标签: json sapui5


【解决方案1】:

不确定我是否完全理解问题,但要查看上下文是否有子 0 或 1

var obj = evt.getSource().getBindingContext().getObject();

var hasChild = (obj.hasOwnProperty(0) || obj.hasOwnProperty(1));

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 2012-02-07
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    相关资源
    最近更新 更多