Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Rivetsjs adapter for backbonejs
rivets.configure({
adapter: {
subscribe: function(obj, keypath, callback) {
if (obj instanceof Backbone.Collection) {
obj.on('add remove reset', function () {
callback(obj[keypath])
});
} else {
obj.on('change:' + keypath, function (m, v) { callback(v) });
};
},
unsubscribe: function(obj, keypath, callback) {
if (obj instanceof Backbone.Collection) {
obj.off('add remove reset', function () {
callback(obj[keypath])
});
} else {
obj.off('change:' + keypath, function (m, v) { callback(v) });
};
},
read: function(obj, keypath) {
if (obj instanceof Backbone.Collection) {
return obj[keypath];
} else {
return obj.get(keypath);
};
},
publish: function(obj, keypath, value) {
if (obj instanceof Backbone.Collection) {
obj[keypath] = value;
} else {
obj.set(keypath, value);
};
}
}
});
@lushchick

This comment has been minimized.

Copy link

commented Feb 27, 2013

Not sure if obj.off will unbind the callback (line 18), since the second parameter is a newly created function, not the same from line 9.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.