<script src="ejs.js"></script>
var fragment = new EJS({url:'userprofile.ejs'}).render();//需使用舊版ejs非tj
亦可塞入data
var data = { title: "Try EJS!" };
var fragment = new EJS({url: 'template.ejs'}).render(data);
SPA example
<li><a onclick="articleFragment()
">顯示文章</a></li>
function articleFragment () {document.getElementById('post').innerHTML = new EJS({url:'article.ejs'}).render()};
(但是,發現在article.ejs 內寫script沒反應)
原因是因為,在div內的script無法作用,我們要加上
function articleFragment() {document.getElementById('post').innerHTML = new EJS({url:'article.ejs'}).render()
//執行div內的所有script標籤
MyDiv = document.getElementById('post')
var arr = MyDiv.getElementsByTagName('script')
for (var n = 0; n < arr.length; n++)
eval(arr[n].innerHTML)
};
將server render附帶的data於client端用js儲存
原先res.render(abc.ejs,{data})
這個data只使用<% data %>讀出,無法用一般js取操
作
所以我們可以在client端把它存成一般的variable
<script>
b = <%= JSON.stringify(res)%> ;
</script>