如果构造函数是字符串,是否有办法(使用eval()
除外)构建sapui5控件?
例如,我想构建一个文本控件:
var oText = new sap.m.Text({});
但“new sap.m.Text({})
”部分实际上是一个字符串。
我试过eval()
:
var sObj = "new sap.m.Text({});";
var oObj = eval(sObj);
oObj.setText("Hello");
它有效。
问题是,是否有另一种更安全的方法可以做到这一点。
答案 0 :(得分:2)
根据@ dfsq的评论,您可以使用new Function
:
var fControlGenerator = function (sControlCommand) {
return new Function("return " + sControlCommand)();
};
var oControl = fControlGenerator("new sap.m.Text()");