javascript - 根据文本值设置图标

标签 javascript sapui5

我需要构建一个由两列组成的表格 - 第一列是姓名,第二列是该人是否获得批准。

这是我从服务器获取的 JSON:

{"records":[
{"approved":"Yes","name":"Doe John"},
{"approved":"No","name":"Doe Jane"}]}

我使用上面的 JSON 将模型设置到表中。

我需要根据“已批准”键的值在第二列中显示图标:sap.ui.core.IconPool.getIconURI("accept")(如果已批准)并且sap .ui.core.IconPool.getIconURI("decline") 否则。

以下是我尝试定义表行的方法:

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.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");};
            }
        }
    }),

关于javascript - 根据文本值设置图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29919316/

相关文章:

切换到全屏时 Javascript/jQuery 变慢

javascript - Access-Control-Allow-Headers Google map 地理编码不允许请求 header 字段授权

javascript - 谷歌地图多边形过多导致 iOS 崩溃

javascript - 从今天起,无法在 SAPUI5 中加载 View 时发生错误

sapui5 - SAPUI5 中的国际化

sapui5 - `this.oType.formatValue` 不是一个函数

javascript - 循环遍历数组并将文本应用于 n :th element

javascript - 在 R Shiny 中使用 Enter 键和操作按钮

SAPUI5 - Sap.m.RadioButton 值字段?

sapui5 - 从 Fiori 收件箱中删除 "Claim"按钮