Javascript 根据文本值设置图标

Javascript 根据文本值设置图标,javascript,sapui5,Javascript,Sapui5,我需要建立一个由两列组成的表-第一列是姓名,第二列是此人是否被批准 以下是我从服务器获得的JSON: {"records":[ {"approved":"Yes","name":"Doe John"}, {"approved":"No","name":"Doe Jane"}]} 我使用上面的JSON将模型设置到表中 我需要根据“approved”键的值在第二列中显示图标:sap.ui.core.iconpol.getIconURI(“接受”)如果已批准,则显示图标;如果未批准,则显示sap.u

我需要建立一个由两列组成的表-第一列是姓名,第二列是此人是否被批准

以下是我从服务器获得的JSON:

{"records":[
{"approved":"Yes","name":"Doe John"},
{"approved":"No","name":"Doe Jane"}]}
我使用上面的JSON将模型设置到表中

我需要根据“approved”键的值在第二列中显示图标:
sap.ui.core.iconpol.getIconURI(“接受”)
如果已批准,则显示图标;如果未批准,则显示
sap.ui.core.iconpol.getIconURI(“拒绝”)

下面是我如何定义表行的:

var oModel = new sap.ui.model.json.JSONModel();
oModel.setData(data); //the above JSON response
oTable = sap.ui.getCore().byId("tableId");
oTable.setModel(oModel);
oTable.bindItems({
    path: "/records", 
    template: new sap.m.ColumnListItem({
        cells : [ 
        new sap.m.Text({text: "{name}"}), 
        new sap.ui.core.Icon({ //my problem starts here
            path: "approved",
            formatter: function(approved){
                if (approved==="Yes"){return new sap.ui.core.IconPool.getIconURI("accept");}
                else{return new sap.ui.core.IconPool.getIconURI("decline");};
            }
        }), 
        ]
    })
});
我无法正确定义图标列。上面的代码显示了我在搜索了一段时间后试图做的事情

如何使其工作?

几乎不错:-)您忘了包括要应用格式化程序的字段(在本例中,
src

改变

    new sap.ui.core.Icon({
        path: "approved",
        formatter: function(approved){
            if (approved==="Yes"){return new sap.ui.core.IconPool.getIconURI("accept");}
            else{return new sap.ui.core.IconPool.getIconURI("decline");};
        }
    }),


如果我从格式化程序
new sap.ui.core.IconPool.getIconURI(“accept”)
返回,我会得到
Uncaught TypeError:s.indexOf不是一个函数
错误。相反,我没有返回“sap”-icon://accept";并且它工作得非常完美。谢谢
    new sap.ui.core.Icon({
        src : {
            path: "approved",
            formatter: function(approved){
                if (approved==="Yes"){return new sap.ui.core.IconPool.getIconURI("accept");}
                else{return new sap.ui.core.IconPool.getIconURI("decline");};
            }
        }
    }),