使用Knockout JS如何使用模板绑定动态呈现JavaScript代码

时间:2015-04-21 06:49:40

标签: jquery knockout.js knockout-templating

我正在使用Knockout模板绑定动态构建HTML表单。每个表单定义都有自己的JavaScript函数集,用于自定义验证。

如何将java脚本代码(函数)呈现给页面,以便在验证期间调用它们?动态插入JavaScript代码的原因是因为它们是用户定义的。

最终结果应为:

<script type="text/javascript">
   function a() {};  // inserted dynamically
   function b() {}:  // inserted dynamically
   ...
</script>

当自定义验证仅使用一个JavaScript函数时,没有问题&#34; - 我可以使用eval()命令来执行它。然而,当函数需要引用另一个函数时,事情变得有点复杂。我在这里遇到两个问题:

  1. 我不应该使用eval()命令,因为它很慢且不安全。
  2. 当一个函数需要引用另一个函数时,即使eval()选项也不会被&#39;帮助我。
  3. 所以我想如果可以在脚本标记内动态呈现所有JavaScript函数,然后我可以使用[Window]。[functionName]而不是使用eval()命令来引用这些函数。

    让我强调一点,这些JavaScript函数并非都位于一个单独的文件中。它们分散在由服务器构建的复杂JSON对象中,该对象表示将驱动动态表单加载的表单定义。有许多不同的表单定义。

1 个答案:

答案 0 :(得分:0)

  1. 在表单模板中创建脚本标记。
  2. 从JSON对象连接JavaScript函数并将它们存储在字符串中。
  3. 使用JQuery将包含JavaScript函数的变量插入到脚本标记中。