【发布时间】:2013-03-07 21:06:05
【问题描述】:
我有一个Teams 列表显示为我的页面上的链接列表,目前,我有一个文本框....当单击该Team 的链接时,该Key取Team 并发送到/team/:key 路由,它通过Key 搜索Team,获取数据并将数据发回。如果数据成功发送回 JS 文件,则 Team 名称将输出到文本框。
我想更改这一点,当单击链接并使用Team.findByKey 检索数据时,我想呈现一个新页面('teamDetails')并将该Team 的数据传递给它。通过这种方式,我可以使 Team 的每个链接都链接到 Team's 单个页面,并在其上显示完整的详细信息。
知道我将如何调整 /team/:key 路由来执行此操作吗?
JS file
// Setup teamsLink to retrieve Team info for whichever Team was clicked
Team.initTeamsLink = function(){
$("a.teamLink").live("click", function(e){
e.preventDefault();
var teamId = ($(this)[0]).getAttribute('id');
$.get('/team/'+teamId, function(response){
if(response.retStatus === 'success'){
var teamData = response.teamData;
$('#teamId').val(teamData.key);
$('#teamName').val(teamData.name);
} else if(response.retStatus === 'failure'){
}
});
});
};
Route
app.get('/team/:key', function(req, res) {
util.log('Serving request for url [GET] ' + req.route.path);
Team.findByKey(req.params.key, function(err, teamData){
if(!err && teamData){
teamData = teamData;
res.json({
'retStatus' : 'success',
'teamData' : teamData
});
} else {
util.log('Error in fetching Team by key : ' + req.params.key);
res.json({
'retStatus' : 'failure',
'msg' : 'Error in fetching Team by key ' + req.params.key
});
}
});
});
【问题讨论】:
-
您想要一个 HTML 网站而不是 JSON 响应?
-
是的,当点击链接时,会向页面发送 JSON 响应,以便将团队名称放入文本框中。相反,我想渲染一个我拥有的 HTML 页面(teamDetails.jade 是页面),我想在渲染时将团队的详细信息传递给该页面,以便在单击链接时为每个团队创建一个页面。
标签: javascript node.js express