2011-08-19 22 views
2

一个JavaScript变种我有以下模板:指定的字符串从Django的

var url = {{url}}; 
$.getJSON(url... 

及以下观点:

return render_to_response('template.html', {"url":"/this/url/"}) 

,但由于某种原因,JavaScript并没有把它当作一个string。为什么有这个原因?我应该用什么语法?

+2

模板解析后JavaScript源代码是什么样的? – agf

+0

'{{url}}'如其他人所述。有一点建议,养成动态编写JS的习惯永远不是一个好主意。最好将所有对象写入单个JSON对象,然后在JavaScript内引用 - 因为它将所有动态对象保留在一个位置,所以更容易维护。 – martin

回答

3

这条线在你的模板:

var url = {{url}}; 

将成为此:

var url = /this/url; 

有在模板中没有报价,且有串中没有报价,所以没有报价在输出中。你应该使用这个:

var url = "{{url}}"; 

甚至更​​好:

var url = "{{url|escapejs}}"; 

,这样的特殊字符将得到妥善处理。