¿Cómo puedo extender el constructor de un recurso AngularJS ($ resource)?

Tengo un modelo, definido utilizando$resource, que estoy cargando exitosamente.

Cada instancia cargada es, como se prometió, una instancia de la clase que definí.

(El siguiente ejemplo es de los documentos angulares. En él,User.get resulta en un objeto que es unainstanceof User.)

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

Sin embargo, imagine que cada usuario llega por el cable de esta manera:

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

Yo defini unPreference fábrica que agrega métodos valiosos paraPreference objetos. Pero cuando un usuario carga, esospreferences no sonPreferences, por supuesto.

Intenté esto:

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
}

Pero no tiene efecto y nunca registra nada.

¿Cómo puedo hacer cada elemento en miUsers ’preferences Arrayear una instancia dePreference?

Respuestas a la pregunta(5)

Su respuesta a la pregunta