我正在使用 Knockout 模板绑定动态构建 HTML 表单。每个表单定义都有自己的一组用于自定义验证的 JavaScript 函数。
如何将 java 脚本代码(函数)呈现到页面,以便在验证期间调用它们?动态插入 JavaScript 代码的原因是因为它们是用户定义的。
最终结果应该是:
<script type="text/javascript">
function a() {}; // inserted dynamically
function b() {}: // inserted dynamically
...
</script>
当自定义验证只使用一个 JavaScript 函数时,“没问题”——我可以使用 eval() 命令来执行它。但是,当函数需要引用另一个函数时,事情就会变得更加复杂。我这里有两个问题:
- 我不应该使用 eval() 命令,因为它速度慢且不安全。
- 当一个函数需要引用另一个函数时,即使 eval() 选项也不会帮助我。
所以我想如果可以在脚本标签内动态呈现所有 JavaScript 函数,然后我可以使用 [Window].[functionName] 而不是使用 eval() 命令来引用这些函数。
让我强调一点,这些 JavaScript 函数并非都位于一个单独的文件中。它们分散在由服务器构建的复杂 JSON 对象中,该对象代表将驱动动态表单加载的表单定义。有许多不同的表单定义。