function clientViewModel() { var self = this;
self.addresses = ko.observableArray(); self.selectedAddress = ko.observable(); self.addressForEditing = ko.observable();
self.addAddress = function (data, e) { self.addressForEditing(new address());
};
self.addAddressSave = function (data, e) { var newAddress = ko.observable(new address()); ko.mapping.fromJS(ko.mapping.toJS(self.addressForEditing), {}, newAddress) self.addresses.push(newAddress); };
self.editAddress = function (data, e) { self.selectedAddress(data); ko.mapping.fromJS(ko.mapping.toJS(self.selectedAddress), {}, self.addressForEditing); };
self.editAddressSave = function (data, e) { ko.mapping.fromJS(ko.mapping.toJS(self.addressForEditing), {}, self.selectedAddress); };};
function address() { var self = this;
self.Property = ko.observable("");
self.Street = ko.observable("");
self.Town = ko.observable(""); self.Postcode = ko.observable("");
self.Country = ko.observable(""); self.FullAddress = ko.computed(function () { var arr = [" ", self.Property(), self.Street(), self.Town(), self.Postcode()];
return arr.join(", ").split(" ,").join("").trim(); }, this);};