【发布时间】:2017-09-15 22:54:32
【问题描述】:
我的场景如下。
我有一个主网站,其中包含从支持服务检索为 JSON 格式的员工列表。我正在使用 Handlebars 引擎进行模板化,如下所示。
JSON
[{"FirstName":"Tom","LastName":"Stephens","BirthPlace":"London","Gender":"M","OIB":"12345678901","CurrentPlace":"Berkeley","Department":"21510"},
{"FirstName":"Abigail","LastName":"Ybarra","BirthPlace":"Miami","Gender":"F","OIB":"12345678902","CurrentPlace":"Los Angeles","Department":"21540"},
{"FirstName":"Kim","LastName":"Kardashian","BirthPlace":"New York","Gender":"F","OIB":"12345678903","CurrentPlace":"Boston","Department":"UNKNOWN"},
{"FirstName":"David","LastName":"Beckham","BirthPlace":"London","Gender":"M","OIB":"12345678904","CurrentPlace":"Manchester","Department":"UNKNOWN"},
{"FirstName":"Zlatan","LastName":"Ibrahimovic","BirthPlace":"Stockholm","Gender":"M","OIB":"12345678905","CurrentPlace":"Zenica","Department":"21540"}]
index.html
<script id="employees-template" type="text/x-handlebars-template">
<ul>
{{#each employees}}
<li>{{FirstName}}</li> <!-- use URL to a details website instead of FirstName -->
{{/each}}
</ul>
</script>
通过单击按钮获取员工列表,其定义如下。
main.js
// on-click listener
$("#btn-show").click(function(e) {
// AJAX call on button clicked
$.ajax({
type: "GET",
dataType: "json",
url: "http://127.0.0.1:8080/api/employee/",
error: function (xhr) {
console.log(xhr.statusText);
}
}).done(function(data) {
// render data to html template
var html = template({employees : data});
$("#render-here").html(html);
});
});
它的工作原理如下:单击按钮时,将呈现员工姓名列表。
现在,我想要实现的是,这些名称中的每一个实际上都是一个 URL,该 URL 指向一个页面,其中包含有关特定员工的所有详细信息。
例如,如果用户单击列表中的 URL“Tom”,则应打开一个新的 HTML 页面,其中包含有关 Tom 的所有详细信息,包括 FirstName、LastName、BirthPlace、CurrentPlace 等。这个简单的页面可以叫employee.html。
employee.html
<html>
<head>
</head>
<body>
<p>
Firstname: {{FirstName}}
</p>
<p>
LastName: {{LastName}}
</p>
<p>
CurrentPlace: {{CurrentPlace}}
</p>
<p>
BirthPlace: {{BirthPlace}}
</p>
<p>
Gender: {{Gender}}
</p>
<p>
Department: {{Department}}
</p>
</body>
</html>
现在的问题是如何将特定员工的所有详细信息从我的main.html 页面发送到特定的employee.html 页面(当单击特定员工的 URL 时)?
我知道我可以通过 URL 传递所有参数,但是强迫用户看到这个不必要的详细 URL 似乎真的很难看。
还有更好的选择吗?
【问题讨论】:
-
您可以对数据和add it to localStorage 进行字符串化。注意:有大小限制。
-
我相信你正在使用 angularjs。为什么不使用服务。
标签: javascript jquery html json