0.1.7 • Published 12 years ago
backbone.relations v0.1.7
Backbone.Relations
The plugin is for defining relations between models.
Dependencies:
- Backbone
>= 1.0.0
- Underscore
>= 1.5.1
Getting Started
Define models
var User = Backbone.Model.extend({
initialize: function () {
this.hasOne(Mailbox, { as: 'mailbox', foreignKey: 'userId' });
}
}),
Mailbox = Backbone.Model.extend({
initialize: function () {
this.belongsTo(User, { as: 'user', foreignKey: 'userId' });
this.hasMany(Message, { as: 'messages', foreignKey: 'mailboxId' });
}
}),
Message = Backbone.Model.extend({
initialize: function () {
this.belongsTo(Mailbox, { as: 'mailbox', foreignKey: 'mailboxId' });
}
});
Define collections
var UserList = Backbone.Collection.extend({
model: User
}),
MailboxList = Backbone.Collection.extend({
model: Mailbox
}),
MessageList = Backbone.Collection.extend({
model: Message
});
Create collections
var userList = new UserList([
{ id: 1, name: 'Dmytro Nemoga' },
{ id: 2, name: 'Andriy Serputko' }
]),
mailboxList = new MailboxList([
{ id: 1, email: 'dnemoga@gmail.com', userId: 1 },
{ id: 2, email: 'aserput@gmail.com', userId: 2 }
]),
messageList = new MessageList([
{ id: 1, text: 'Hi, Dmytro! How are you?', mailboxId: 1 },
{ id: 2, text: 'Hi, Andriy! I\'m fine, thanks!', mailboxId: 2 }
]);
Manipulate related models
Association hasOne
var user = userList.get(1);
user.getMailbox();
user.setMailbox();
user.buildMailbox();
user.createMailbox();
Association hasMany
var mailbox = mailboxList.get(1);
mailbox.getMessages();
Association belongsTo
var message = messageList.get(1);
message.getMailbox();
message.setMailbox();
message.buildMailbox();
message.createMailbox();
Changelog
0.1.7
- Removed Underscore.String depenedency
0.1.6
- Removed method
toJSON
0.1.5
- Removed CommonJS support
0.1.4
- Added CommonJS support
0.1.3
- Option
advanced
oftoJSON
method's renamed torelations
0.1.2
- Reverted method
toJSON
0.1.1
- Removed method
toJSON
0.1.0
- Initial release
0.1.7
12 years ago