使用knockout更新href查询参数



我有一些URL查询参数如下所示。我需要使用视图模型(Knockout)替换查询参数的值。

<http://localhost:85/Default.aspx?FormName=Default&ControlNameAndValue={Control1,Control_Value},{Control2,Control2_Value}#/Default.aspx>

在上面的链接中,我需要替换"Control1_Value"与"param1"one_answers"Control2_Value"与"param2"从下面的ViewModel属性,

var FormDetailsViewModel{
param1: ko.Observable("XYZ"),
param2: ko.Observable("ABC")
} 

我尝试了下面的URL,但没有工作,我得到错误的绑定。

"<http://localhost:85/Default.aspx?FormName=Default&ControlNameAndValue={Control1," + FormDetailsViewModel.param1() + "},{Control2," + FormDetailsViewModel.param2() + "}#/Default.aspx>"

不确定我在上面做错了什么,或者是否有其他方法可以使用knockout来实现这一点?

我建议在您的视图模型中有一个可观察对象,它通过ko.computed返回完整的,构造的URL:

var FormDetailsViewModel = {
  param1: ko.observable("foo"),
  param2: ko.observable("bar"),
  url: ko.computed(function() {
    return "http://localhost:85/Default.aspx?FormName=Default&ControlNameAndValue={Control1," + this.param1() + "},{Control2," + this.param2() + "}#/Default.aspx";
  })
}

和使用attr绑定来设置href:

<a data-bind="attr: { href: url }">My link</a>

最新更新