Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

backbone-modelref

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

backbone-modelref

Backbone-ModelRef.js provides a mechanism to respond to lazy-loaded Backbone.js models.

  • 0.1.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4
increased by33.33%
Maintainers
1
Weekly downloads
 
Created
Source

Build Status

|_) _. _ | |_  _ ._  _ __ |\/| _  _| _ ||_) _ _|_
|_)(_|(_ |<|_)(_)| |(/_   |  |(_)(_|(/_|| \(/_ |

Backbone-ModelRef.js provides a mechanism to respond to lazy-loaded Backbone.js models.

#Download Latest (0.1.5):

Please see the release notes for upgrade pointers.

###Module Loading

Backbone-ModelRef.js is compatible with Require.js and AMD module loading. Module names:

  • 'backbone-modelref' - backbone-modelref.js.

###Dependencies

An Example:

  class MyView extends Backbone.View
    constructor: (@model_ref) ->
      super; _.bindAll(this, 'render', 'renderWaiting')
      @model_ref.bind('loaded', @render); @model_ref.bind('unloaded', @renderWaiting)
      if @model_ref.isLoaded() then @render() else @renderWaiting()

    render: -> @is_waiting = false
    renderWaiting: -> @is_waiting = true

  collection = new MyCollection()
  view = new MyView(new Backbone.ModelRef(collection, 'dog')) # view is now rendering in waiting state
  collection.add(collection.parse([{id: 'dog'}]))             # view is now rendering in loaded state

Classes

Backbone.ModelRef: This is the only class! It just wraps a collection and a model id, and tells you when the model is loaded and unloaded.

API Signature Parity between Backbone.Model and Backbone.ModelRef

FunctionBackbone.ModelBackbone.ModelRef
get(attribute_name)returns model.get(attribute_name)returns the model id only and throws an exception otherwise
model()returns thisreturns its model if it is loaded or null if not
isLoaded()returns truereturns true if its model is loaded and false otherwise
bindLoadingStates( loaded_fn or {loaded:fn, unloaded:fn} )loaded function called one time (immediately) and unloaded function never called. No Backbone.Event binding occursloaded function called immediately if the model is loaded otherwise they are bound using Backbone.Events 'loaded' and 'unloaded' where each is called when the model is loaded or unloaded, respectively
unbindLoadingStates( loaded_fn or {loaded:fn, unloaded:fn} )ignoredunbinds Backbone.Events 'loaded' and 'unloaded'

Other notes:

  • Backbone.ModelRefs are reference counted so use retain() and release() to properly ensure non-dangling pointers.
  • You can optionally provide an function Backbone.Model.isLoaded() id you have custom loading checks like for lazy-loaded Backbone.Relational models.
  • You can optionally provide a reference counted collection (implementing retain() and release()).

Please look at the provided examples and specs for sample code:

Building, Running and Testing the library

###Installing:

  1. install node.js: http://nodejs.org
  2. install node packages: 'npm install'

###Commands:

Look at: https://github.com/kmalakoff/easy-bake

Keywords

FAQs

Package last updated on 14 Sep 2012

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc