Knockout.js 敲除模型绑定技术
我有这个删除视图模型,用于插入、更新、删除和显示城市Knockout.js 敲除模型绑定技术,knockout.js,Knockout.js,我有这个删除视图模型,用于插入、更新、删除和显示城市 function City(data) { this.CityId = ko.observable(data.CityId); this.CityName = ko.observable(data.CityName); } function CityViewModel() { var self = this; self.Citys = ko.observableArray([]); self.Selec
function City(data) {
this.CityId = ko.observable(data.CityId);
this.CityName = ko.observable(data.CityName);
}
function CityViewModel() {
var self = this;
self.Citys = ko.observableArray([]);
self.SelectedCity = ko.observable();
self.EditingCity = ko.observable(new City({ CityId: '', CityName: '' }));
self.EditCity = function (city) {
$.ajax("/Controller/GetSingalCity/" + ko.toJSON(city.CityId), {
data: ko.toJSON({ CityId: city.CityId }),
type: "POST", contentType: "application/json",
success: function (result) {
if (result.Success) {
var cityid = result.Data.CityId;
var cityname = result.Data.CityName;
self.EditingCity(new City({ CityId: cityid, CityName: cityname }));
}
else {
alert("Error..");
}
}
});
};
}
用这个代码每次插入更新删除我都要用
self.EditingCity(new City({ CityId: cityid, CityName: cityname }));
或
我不想包装self.EditingCity(new City({CityId:'',CityName:''}));对于每个操作(插入、更新、删除)。有人能告诉我怎么走吗??
我是淘汰赛的初学者……您不需要创建新的城市对象。相反,只需更新现有的。任何绑定到该
EditingCity
对象的数据视图都应自动更新
因此,与其写:
self.EditingCity(new City({ CityId: cityid, CityName: cityname }));
你应该写:
self.EditingCity().CityId(newCityId);
self.EditingCity().CityName(newCityName);
帕特里克,我相信你想要:self.EditingCity().CityId(newCityId);self.EditingCity().CityName(newCityName);因为编辑城市是可观察的。(请注意编辑城市后的参数)
self.EditingCity().CityId(newCityId);
self.EditingCity().CityName(newCityName);