我有一些带有查询参数的URL,如下所示。我需要使用视图模型(Knockout)替换查询参数的值。
<http://localhost:85/Default.aspx?FormName=Default&ControlNameAndValue={Control1,Control_Value},{Control2,Control2_Value}#/Default.aspx>
在abovelink中我需要替换&#34; Control1_Value&#34;使用&#34; param1&#34;和&#34; Control2_Value&#34;用&#34; param2&#34;从下面的ViewModel属性
var FormDetailsViewModel{
param1: ko.Observable("XYZ"),
param2: ko.Observable("ABC")
}
我尝试了以下网址,但没有工作,我因错误绑定而收到错误。
"<http://localhost:85/Default.aspx?FormName=Default&ControlNameAndValue={Control1," + FormDetailsViewModel.param1() + "},{Control2," + FormDetailsViewModel.param2() + "}#/Default.aspx>"
不确定我在上面的href中做了什么错误,或者是否有其他方法可以使用knockout实现此目的?
答案 0 :(得分:2)
我建议你的viewmodel中有一个observable,它通过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>