0

都市を挿​​入、更新、削除、および表示するためのこのノックアウトビューモデルがあります

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: '' }));

self.EditingCity(new City({ CityId: '', CityName: '' })); をクレートしたくありません。すべての操作(挿入、更新、削除)。誰でも方法を教えてもらえますか?? ノックアウト初心者です。...

4

1 に答える 1

1

新しい City オブジェクトを作成する必要はありません。代わりに、既存のものを更新するだけです。そのオブジェクトにデータ バインドされているすべてのビューは、EditingCity自動的に更新される必要があります。

したがって、次のように書く代わりに:

self.EditingCity(new City({ CityId: cityid, CityName: cityname }));

あなたは書いているはずです:

self.EditingCity().CityId(newCityId);
self.EditingCity().CityName(newCityName);
于 2013-06-03T11:34:40.317 に答える