1

次のようなオブジェクトを定義すると

var Person = function(id, name, country) {
    var self = this;
    self.id = ko.observable(id);
    self.name = ko.observable(name);
    self.country = ko.observable(country); 

    return self;
};

ボタンのクリックイベントで、このオブジェクトからプロパティ「国」を削除するにはどうすればよいですか。問題は、データをWebサービスに送信するときに、このプロパティを送信したくないということです。

保存ボタンのクリックイベントでプロパティ「国」を削除しようとしているフィドルを参照してください。 http://jsfiddle.net/kirannandedkar/nZDrk/7/

4

3 に答える 3

1

このプロパティをすべてのオブジェクトから削除する必要があります:

this.SaveDetail = function() {
    ko.utils.arrayForEach(people(), function(item){
        delete item["country"];                 
    });
};

ここにフィドルが働いています:http://jsfiddle.net/nZDrk/8/

于 2012-12-19T20:05:38.767 に答える
0

この Web サービスにデータを送信しているためtoJSON()、オブジェクトに関数を実装し、そこでプロパティを削除する必要があります。ko.toJSON()次に、モデルを呼び出した結果を送信します。そうすれば、モデルには引き続きプロパティが含まれますが、送信するものにはプロパティが削除されます。

var Person = function(id, name, country) {
    var self = this;
    self.id = ko.observable(id);
    self.name = ko.observable(name);
    self.country = ko.observable(country); 

    self.toJSON = function () {
        var data = ko.toJS(self); // get the values of this model
        // delete the property from the data
        delete data.country;
        return data;
    };
};

var person = new Person(1, 'foo', 'bar');
var data = ko.toJSON(person); // {"id":1,"name":"foo"}
于 2012-12-19T22:28:27.807 に答える