使用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是邪恶的”),不管是谁否决了它:评论怎么样?不提理由就否决一个正确的答案是非常不礼貌的。