我使用node.js/express和EJS(嵌入式JavaScript)。Node.js Express:重新訪問注入.html文件的變量
我注入一些變量放入一個.html頁面這樣
res.render('userHome.html', {
user : user,
teams : teams,
user_db_name : user_db_name
});
userHome.html內容:
<html>
<head>
<title>SASC Sparks Lineup Generator</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"</script>
<script type="text/javascript" src="/fancy_scripts/userHomeController.js"></script>
</head>
<body>
<form onsubmit="chooseImportTeamOrManualCreate(<%=user._id%>)" id="page1">
<!-- <input id="createNewTeam" type="submit" value="Create New Team"/> -->
<button type="submit" value="Create New Team" id="createNewTeamButton">Create New Team</button>
</form>
</body>
</html>
這裏是chooseImportTeamOrManualCreate.js文件內容
$(document).ready(function() {});
function chooseImportTeamOrManualCreate(user_id){
//I want user_id to be passed into this method, but this does not work
console.log($.document);
if (window.confirm("Do you wish to import team data from an existing roster?")) {
window.location.replace("https://stackoverflow.com/users/" + user_id + "/importNewTeamRoster", "Importing new roster");
// window.open("https://stackoverflow.com/users/" + user_id + "/importNewTeamRoster", "Importing new roster");
}
else{
window.location.replace("https://stackoverflow.com/users/" + user_id + "/importNewTeamRoster", "Importing new roster");
}
};
*試圖將<%= user._id%>注入到chooseImportTeamOrManual Create()讓我覺得有點傻,因爲我知道這可能是荒謬的錯誤。
我怎麼能得到user_id傳遞給chooseImportTeamOrManualCreate(),然後一旦我在chooseImportTeamOrManualCreate()我如何訪問變量?也許用戶變量附加到文檔/窗口DOM對象?
感謝您的支持。你最後幾句話有一點意義,但是一個例子(鏈接?)會非常有幫助。 – 2014-11-22 07:16:20
另外@Paul,是附加到DOM文檔本身的注入變量?這將是一個解決方法,也許這與AJAX解決方案有關。 – 2014-11-22 07:22:23
您的應用程序的任何頁面上的客戶端代碼應該以某種方式知道其「userid」。問題是如何。 localStorage看起來相當不錯,如果你願意支持大多數HTML 5,因爲一旦設置它就在那裏,即使在刷新之後。當然,這並沒有回答如何到達那裏的問題,顯然它需要來自服務器和頁面,而不是匿名請求。所以也許我對AJAX的評論不適合設置用戶標識。 – Paul 2014-11-22 07:31:38