我有一个简单的viewmodel,它有一个ko.computed方法。这个ko.computed methoud有多个ajax调用。我只想从锚标记中调用ko.computed方法来刷新我的数据集。
我的ViewModel:
var MyDataViewModel = {
Date: ko.observable(FormatDate()),
Receiving: ko.observableArray(),
Triage: ko.observableArray(),
Technician: ko.observableArray(),
Scrap: ko.observableArray(),
Refurb: ko.observableArray(),
CA: ko.observableArray(),
Dispatch: ko.observableArray()
}
MyDataViewModel.Refresh = ko.computed(function () {
var self = MyDataViewModel;
//AJAX CALLS HERE
});
我的锚标记:
<a href="#Refresh" data-bind="click: Refresh" ><i class="icon-refresh"></i></a>
当我点击锚标记时,我收到以下消息:
未捕获错误:除非指定“写入”选项,否则无法将值写入ko.computed。如果您希望读取当前值,请不要传递任何参数。
非常感谢任何建议协助。
答案 0 :(得分:1)
click
binding需要一个在您点击时执行的功能,因此您不需要ko.computed
只需function
:
MyDataViewModel.Refresh = function () {
var self = MyDataViewModel;
//AJAX CALLS HERE
};
如果要从现有的可观察属性计算新值,则只需使用ko.computed
。从计算的可观察documentation:
如果你有firstName的可观察量,而另一个有 lastName,你想显示全名吗?这是计算的地方 观察者进来 - 这些是依赖于一个或多个的功能 更多其他可观察者,并将随时自动更新 这些依赖关系发生了变化。