首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5,Knockout url重定向函数

HTML5,Knockout url重定向函数
EN

Stack Overflow用户
提问于 2015-04-19 02:08:05
回答 3查看 3.2K关注 0票数 1

我已经创建了一个HTML5应用程序,它使用调用restful服务和get/post JSON消息。这是我第一个使用HTML5的应用程序,所以我不知道如何实现URL重定向。

在应用程序中,我有两个html页面,一个是DataGrid页面,它显示了通过get rest调用接收到的所有数据。我添加了一个超链接到显示中的字段中,我想使用它重定向到details页面,并调用rest来获取该特定id的数据,并在可编辑页面中显示它,稍后希望保存更改。

UserGridPage.html

代码语言:javascript
复制
<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

代码语言:javascript
复制
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。

感谢您对代码示例、链接等的任何帮助。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-20 17:34:59

在userEntry.html中,如果希望传递id值,请执行以下操作:

代码语言:javascript
复制
<script>
  var id = window.location.hash;
</script>

我记得firefox的行为略有不同,因为它解码了片段中URL编码的字符,所以如果您想要原始内容,还可以考虑使用:

代码语言:javascript
复制
<script>
  var id = window.location.href.split("#")[1];
</script>
票数 1
EN

Stack Overflow用户

发布于 2015-04-19 14:53:24

你应该这样做

视图:

代码语言:javascript
复制
<ul data-bind="foreach: items">
    <li>
        <a data-bind="attr: { href: id }, text: name,click:function(){alert(id)}"></a>
    </li>
</ul>

ViewModel :

代码语言:javascript
复制
var viewModel = {
    items: [{'id':1,'name':"one"},{'id':2,'name':"two"},{'id':3,'name':"three"}]        
};

ko.applyBindings(viewModel);   

样品工作小提琴这里

票数 2
EN

Stack Overflow用户

发布于 2015-04-19 05:10:34

不确定如何使用javascript从URL中获取参数,但如果您愿意使用PHP,则可以使用$_REQUEST获得Id参数,并使用它生成新的REST调用。

所以您的href应该是"/USERUI/UserEntry.php?Id=5“

要在UserEntry页面的javascript中使用该变量,可以执行以下操作:

代码语言:javascript
复制
 <script>
    var id = <?php $_REQUEST['Id']; ?>

    //generate your restful query here.
 </script>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29725007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档