This fiddle shows a list of users being mapped to a function, in that function an observableArray is created surrounding the Roles. For some reason the console log of these mapped users only shows the Roles as and array.
I don't know why?!
var userModel = function (data) {
var self = this;
self.FirstName = data.FirstName;
self.LastName = data.LastName;
self.Email = data.Email;
self.ContactTel = data.ContactTel;
self.ContactMob = data.ContactMob;
self.Username = data.Username;
self.Roles = ko.observableArray(data.Roles);
};
Mapping:
self.users = ko.observableArray([]).map(model, userModel);
My observableArray extension:
ko.observableArray.fn.map = function (data, Constructor) {
var mapped = $.each(data, function (i, e) { return new Constructor(e); });
this(mapped);
return this;
};