Skip to content

Instantly share code, notes, and snippets.

@berzniz
Last active August 29, 2015 13:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save berzniz/10194472 to your computer and use it in GitHub Desktop.
Save berzniz/10194472 to your computer and use it in GitHub Desktop.
Backbone tips & rules
// Ok:
this.stateModel.on('change:readMore', this.renderReadMore, this);
// Awesome:
this.listenTo(this.stateModel, 'change:readMore', this.renderReadMore);
view.render().$el.appendTo(otherElement);
this.listenTo(this.stateModel, 'change', this.render);
this.listenTo(this.stateModel, 'change:readMore', this.renderReadMore);
this.viewState.set('readMore', true);
model.fetch({
success: handleSuccess,
error: handleError
});
view.listenTo(model, 'sync', handleSuccess);
view.listenTo(model, 'error', handleError);
model.fetch();
$('.text').html('Thank you');
this.$('.text').html('Thank you');
// psssst... This is the same as:
// this.$el.find('.text').html('Thank you');
var BodyView = Backbone.View.extend({
initialize: function() {
this.listenTo(Backbone, 'prevent-scroll', this.preventScroll);
},
preventScroll: function(prevent) {
// .prevent-scroll has the following CSS rule: overflow: hidden;
this.$el.toggleClass('prevent-scroll', prevent);
}
});
// And now from anywhere in the code:
Backbone.trigger('prevent-scroll', true); // prevent scrolling
Backbone.trigger('prevent-scroll', false); // allow scrolling
this.viewState = new Backbone.Model();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment