我想用新数据重新绑定相同的模型,或者你可以在调用 ajax 后说我想用全新的数据更新模型。
function returnData(url,data,type){
$.post(url, data, function(returnedData) {
if(type == "search")
{
ko.applyBindings(new SearchViewModel(returnedData,"#searchbox",url,data),$("#searchbox")[0]);
}
});
}
这是为数据调用 ajax 的代码,当接收到新数据时,它会将其绑定到模型。第一次不是问题,但下一次它会加倍相同的数据。
returnData(doamin+"/1.0/search",{userid:"12033914132",keyword:""},"search");
当我输入一个新的搜索词时,我想调用相同的函数。
我知道我们可以使用 observable 来更新数据,但我想清除旧绑定并添加新绑定
function SearchViewModel(data,id,url,userdata) {
var self = this;
// Editable data
var ParsedData = JSON.parse(data);
self.Contacts = ko.observableArray(ParsedData.Contacts);
self.Sms = ko.observableArray(ParsedData.Sms);
self.Calendar = ko.observableArray(ParsedData.Calendar);
self.Logs = ko.observableArray(ParsedData.Logs);
self.Total = ko.toJS(self.Contacts).length+ko.toJS(self.Sms).length+ko.toJS(self.Calendar).length;
self.ContactsCount = ko.toJS(self.Contacts).length;
self.SmsCount = ko.toJS(self.Sms).length;
self.CalendarCount = ko.toJS(self.Calendar).length;
}