我的示例 JSON 和 js:
function foo1(a) { return a*1.5;} //NOTE: foo1 accept one parameter
function foo2(a,b) { return a*1.5 + b;} //NOTE: foo2 accept two parameter
var arr=[ {func:foo1, para:[10]}, {func:foo2, para:[10,20]} ];
我的 jQuery 模板(不工作):
<script id="template1" type="text/x-jquery-tmpl">
${$item.data.func.apply(this,$item.data.para)}
</script>
调用模板:
$('#template1').tmpl(arr).appendTo('#mycontainer');
我的问题:
- 我有不同的函数接受不同数量的参数(我不能更改函数的参数#)
- 所以我想传递'func'中的函数名和'para'中的参数(作为一个数组),并使用“apply”方法从jQuery模板内部调用该方法
- 但是如果我在函数后使用 apply (如$item.data.func.apply)它会抛出“未定义”错误
更多观察(工作):
- 如果我调用 $item.data.func(10) 或 $item.data.func(10,20) 之类的方法,它可以工作
- 在我想调用该方法的地方
typeof $item.data.func
返回“函数”
请帮忙