在 Alpajajs 中从后端发送一个函数和方案
Send a function along with the scheme from backend in Alpacajs
我在后端有一个 API return AlpacaJS 表单的完整 json(模式和选项)。响应的内容类型是 application/json
。以下是一个示例响应,
{
"options": {
"fields": {
"students": {
"items": {
"type": "tablerow"
},
"type": "table"
}
},
"form": {
"buttons": {
"submit": {
"click": "function(){alert(\"sample\");}"
}
}
}
},
"schema": {
"properties": {
"students": {
"items": {
"properties": {
"name": {
"required": true,
"title": "Name",
"type": "string"
},
"contact-number": {
"title": "Age",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
}
当我点击 Submit
按钮时,浏览器控制台出现以下错误,
Uncaught TypeError: t.call is not a function
我认为问题在于该函数在响应的以下部分中被视为字符串。
"form": {
"buttons": {
"submit": {
"click": "function(){alert(\"sample\");}"
}
}
}
AlpacaJS 有没有办法从后端发送一个 javascript 函数,或者有没有办法在前端将函数字符串转换为 javascript 函数?
为了得到它,你应该通过 new Function('return ' + val)();
将 stringified 函数转换为一个函数(注意这是 eval 和 [=11= 的一种形式) ]).
这是一个有效的 fiddle。
如果它不适合你,请告诉我。
我在后端有一个 API return AlpacaJS 表单的完整 json(模式和选项)。响应的内容类型是 application/json
。以下是一个示例响应,
{
"options": {
"fields": {
"students": {
"items": {
"type": "tablerow"
},
"type": "table"
}
},
"form": {
"buttons": {
"submit": {
"click": "function(){alert(\"sample\");}"
}
}
}
},
"schema": {
"properties": {
"students": {
"items": {
"properties": {
"name": {
"required": true,
"title": "Name",
"type": "string"
},
"contact-number": {
"title": "Age",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
}
当我点击 Submit
按钮时,浏览器控制台出现以下错误,
Uncaught TypeError: t.call is not a function
我认为问题在于该函数在响应的以下部分中被视为字符串。
"form": {
"buttons": {
"submit": {
"click": "function(){alert(\"sample\");}"
}
}
}
AlpacaJS 有没有办法从后端发送一个 javascript 函数,或者有没有办法在前端将函数字符串转换为 javascript 函数?
为了得到它,你应该通过 new Function('return ' + val)();
将 stringified 函数转换为一个函数(注意这是 eval 和 [=11= 的一种形式) ]).
这是一个有效的 fiddle。 如果它不适合你,请告诉我。