我基本上有一個3級模板。
我想加載一個腳本標記從一個子模板動態加載到主模板中。Python/Mako:通過Ajax調用加載到主模板時,腳本標記不會從子模板中顯示
模板設置:
- 所有的頁眉/腳本庫頁
- 其中包含了新的腳本並加載插件二級模板
- 其中包含窗口小部件3級模板
所有我想要做的是當第三級模板被加載,加載一個特定的JavaScript文件,所以我沒有沉重的頭部標記在我的基地t模板可能無法使用的JavaScript文件。
基本模板(頭標記):
<script type="text/javascript" src="/assets/scripts/jquery-1.9.1.js"></script>
${next.javascriptIncludes()}
<script type="text/javascript" src="/assets/scripts/modules/baseModule.js"></script>
第二模板(當腳本標籤)
##conditional to determine if the template should inherit from the base page
##it shouldn't inherit from the base page if it is being inserted into the page using ajax
<%!
def inherit(context):
if context.get('isPage'):
return "base_dashboard.mak"
else:
return None
%>
<%inherit file="${inherit(context)}"/>
<%def name="javascriptIncludes()">
<script type="text/javascript" src="/assets/scripts/libs/jquery.maskedinput-1.3.1.min.js"></script>
</%def>
## AJAX load
%if isPage is False:
blah blah blah shows up
<script>s</script>
<h1>H1 shows up</h1>
<p style="color:red;">P tag shows up in red</p>
<link rel="stylesheet" href="/assets/css/main.css" type="text/css"><- This shows up
<div><script type="text/javascript" src="/assets/scripts/libs/jquery.maskedinput-1.3.1.min.js"></script></div>
Script tag above is missing...
%endif
<div id="dashboard-profile-container">
<%include file="widgets/profile_widget.mak" />
</div>
3模板(窗件)
Just HTML
問題:腳本標籤是沒有得到包括在基礎模板的頭
會如何你處理這個問題?
在這種情況下什麼是「下一個」?這確實是一個內置的python函數,你應該避免名稱衝突。你不能用不同的名字嗎? – 2013-07-31 14:31:21
你是對的,我沒有繼承任何東西,所以不需要使用NEXT ...更新新信息的問題 –