У меня есть модель, определенная с помощью $resource
, которую я успешно загружаю.
Каждый загруженный экземпляр, как и было обещано, представляет собой экземпляр класса I.
(Ниже приведен пример из Angular docs. В нем User.get
выводится объект instanceof User
.)
var User = $resource('/user/:userId', {userId:'@id'});
Однако представьте, что каждый пользователь приходит через провод следующим образом:
{
"username": "Bob",
"preferences": [
{
"id": 1,
"title": "foo",
"value": false
}
]
}
Я определил a Preference
factory, который добавляет ценные методы к объектам Preference
. Но когда пользователь загружает, те preferences
arent Preference
s, естественно.
Я попытался это сделать:
User.prototype.constructor = function(obj) {
_.extend(this, obj);
this.items = _.map(this.preferences, function(pref) {
return new Preference(pref);
});
console.log('Our constructor ran'); // never logs anything
}
Но он не имеет никакого эффекта и никогда ничего не записывает.
Как я могу сделать каждый элемент в моем массиве User
s preferences
экземпляром Preference
?