我已经创建了一个HTML5应用程序,它使用调用restful服务和get/post JSON消息。这是我第一个使用HTML5的应用程序,所以我不知道如何实现URL重定向。
在应用程序中,我有两个html页面,一个是DataGrid页面,它显示了通过get rest调用接收到的所有数据。我添加了一个超链接到显示中的字段中,我想使用它重定向到details页面,并调用rest来获取该特定id的数据,并在可编辑页面中显示它,稍后希望保存更改。
UserGridPage.html
<tbody data-bind="foreach:userList">
<tr>
<td><a data-bind="attr:{href: userInfoUrl()}, text:userInfoId"></a></td>
<td data-bind="text: UserName" ></td>
</tr>UserGridPage.js
MyUserInfoViewModel = function () {
var self = this;
self.userList = ko.observableArray();
$.getJSON("http://localhost:8080/user/webresources/userinfo/").
then(function (userinfos) {
$.each(userinfos, function () {
self.userList.push({
userInfoUrl:ko.observable('/USERUI/UserEntry.html#'+this.userInfoId),
userInfoId:ko.observable(this.userInfoId),
policyHolderEmail: ko.observable(this.policyHolderEmail),
});
});
});我想知道UserEntry页面如何知道哪个Id被传递到它的页面,以及如何调用rest来传递Id到restful。
感谢您对代码示例、链接等的任何帮助。
谢谢
发布于 2015-04-20 17:34:59
在userEntry.html中,如果希望传递id值,请执行以下操作:
<script>
var id = window.location.hash;
</script>我记得firefox的行为略有不同,因为它解码了片段中URL编码的字符,所以如果您想要原始内容,还可以考虑使用:
<script>
var id = window.location.href.split("#")[1];
</script>发布于 2015-04-19 14:53:24
你应该这样做
视图:
<ul data-bind="foreach: items">
<li>
<a data-bind="attr: { href: id }, text: name,click:function(){alert(id)}"></a>
</li>
</ul>ViewModel :
var viewModel = {
items: [{'id':1,'name':"one"},{'id':2,'name':"two"},{'id':3,'name':"three"}]
};
ko.applyBindings(viewModel); 样品工作小提琴这里
发布于 2015-04-19 05:10:34
不确定如何使用javascript从URL中获取参数,但如果您愿意使用PHP,则可以使用$_REQUEST获得Id参数,并使用它生成新的REST调用。
所以您的href应该是"/USERUI/UserEntry.php?Id=5“
要在UserEntry页面的javascript中使用该变量,可以执行以下操作:
<script>
var id = <?php $_REQUEST['Id']; ?>
//generate your restful query here.
</script>https://stackoverflow.com/questions/29725007
复制相似问题