使用django的javascript函数指针
下面的函数指针代码是否有效 在我们看来使用django的javascript函数指针,javascript,jquery,django,django-views,Javascript,Jquery,Django,Django Views,下面的函数指针代码是否有效 在我们看来 def change(request): dict={} function_ptr="create()" dict.update({'function_ptr' : function_ptr}) return render_to_response('mpjt/create.html',context_instance=RequestContext(request,{'dict': dic
def change(request):
dict={}
function_ptr="create()"
dict.update({'function_ptr' : function_ptr})
return render_to_response('mpjt/create.html',context_instance=RequestContext(request,{'dict': dict}))
在create.html中
$(document).ready(function() {
var a = '{{dict.function_ptr}}'
func_ptr(a);
function create()
{
alert('got respponse');
}
});
谢谢。不
在python代码中传递函数\u ptr='create'
,并在JavaScript中使用以下内容:
var func_ptr = window[{{ dict.function_ptr }}];
必须在定义函数create()后执行此操作!
如果您想更早地执行此操作,可以使用匿名函数执行此操作:
var func_ptr = function() {
return window[{{ dict.function_ptr }}];
}
你能解释一下它有什么不同吗?window['funcname']是从字符串获取函数指针的正确方法。包含“funcname”或“funcname()”的字符串只是一个普通字符串,而不是函数(指针)。虽然您可以使用eval()执行'funcname()',但这是非常肮脏的(“eval是邪恶的”),不管是谁否决了它:评论怎么样?不提理由就否决一个正确的答案是非常不礼貌的。