Как расширить конструктор ресурса AngularJS ($ resource)?

У меня есть модель, определенная с помощью$resource, что я успешно загружаюсь.

Каждый загруженный экземпляр, как и было обещано, является экземпляром класса, который я определил.

(Пример ниже взят из Angular Docs. В немUser.get приводит к объекту, который являетсяinstanceof User.)

var User = $resource('/user/:userId', {userId:'@id'});

Тем не менее, представьте, что каждый пользователь приходит по проводам так:

{
  "username": "Bob",
  "preferences": [
    {
      "id": 1,
      "title": "foo",
      "value": false
    }
  ] 
}

Я определилPreference фабрика, которая добавляет ценные методыPreference объекты. Но когда пользователь загружает, теpreferences неPreferenceс, естественно.

Я попытался это:

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 preferences массив экземпляр?Preference

Ответы на вопрос(5)

Ваш ответ на вопрос