如果我定义像
这样的对象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;
};
如何在按钮的点击事件中从此对象中删除属性“country”。事情是,当我向webservice发送数据时,我不想将此属性发送给它。
请在此处查看小提琴,我试图在保存按钮的点击事件中删除属性“country”。 http://jsfiddle.net/kirannandedkar/nZDrk/7/
答案 0 :(得分:1)
您可以使用delete
关键字从对象中完全删除属性:
var somePerson = new Person(1, 'blah', 'blah');
delete somePerson.country;
// send somePerson to the webservice
答案 1 :(得分:1)
您必须从所有对象中删除此属性:
this.SaveDetail = function() {
ko.utils.arrayForEach(people(), function(item){
delete item["country"];
});
};
这是工作小提琴:http://jsfiddle.net/nZDrk/8/
答案 2 :(得分: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"}