I've faced the following issue while trying to integrate Backbone.Mutators with Backbone.Relational which is used to build client side relations and helps to serialize/deserialize data into corresponding json/models.
For example lets assume we have a model (in coffeescript)
@ClientApp.module "Entities", (Entities, App, Backbone, Marionette, $, _) ->
class Entities.Store extends Entities.RelationalModel
defaults:
location: -> new Entities.Location()
mutators:
store_name: ->
@get("location")?.get("name")
What I have now is trying to access related model in mutator will result in an error. That is because backbone.relational haven't yet converted the model's sub-object into an instance of underlying model at the time backbone.mutators serialize data and hence @get('location') will return a json object instead of Entities.Location instance.
I've applied a quick fix by changing the library to save get and set methods from Backbone.RelationalModel.
var Mutator = function () {},
oldGet = Backbone.RelationalModel.prototype.get,
oldSet = Backbone.RelationalModel.prototype.set,
oldToJson = Backbone.RelationalModel.prototype.toJSON;
...
_.extend(Backbone.RelationalModel.prototype, Mutator.prototype);
However i do not really like this fix as far as i will have to apply it every time Backbone.Mutators is updated. Perhaps someone has a more consistent solution? Also please let me know if you need any additional info.
I've faced the following issue while trying to integrate Backbone.Mutators with Backbone.Relational which is used to build client side relations and helps to serialize/deserialize data into corresponding json/models.
For example lets assume we have a model (in coffeescript)
What I have now is trying to access related model in mutator will result in an error. That is because backbone.relational haven't yet converted the model's sub-object into an instance of underlying model at the time backbone.mutators serialize data and hence
@get('location')will return a json object instead of Entities.Location instance.I've applied a quick fix by changing the library to save
getandsetmethods from Backbone.RelationalModel.However i do not really like this fix as far as i will have to apply it every time Backbone.Mutators is updated. Perhaps someone has a more consistent solution? Also please let me know if you need any additional info.