assets/js/vendor/backbone-relational.js
function( model, attr, options ) {
			options = options ? _.clone( options ) : {};
			this.setKeyContents( attr );
			this.changed = false;

			var related = this.findRelated( options );
			this.setRelated( related );

			if ( !options.silent ) {
				var dit = this;
				Backbone.Relational.eventQueue.add( function() {
					// The `changed` flag can be set in `handleAddition` or `handleRemoval`
					if ( dit.changed ) {
						dit.instance.trigger( 'change:' + dit.key, dit.instance, dit.related, options, true );
						dit.changed = false;
					}
				});
			}
		}
function( model, attr, options ) {
			options = options ? _.clone( options ) : {};
			this.setKeyContents( attr );
			this.changed = false;

			var related = this.findRelated( options );
			this.setRelated( related );

			if ( !options.silent ) {
				var dit = this;
				Backbone.Relational.eventQueue.add( function() {
					// The `changed` flag can be set in `handleAddition` or `handleRemoval`
					if ( dit.changed ) {
						dit.instance.trigger( 'change:' + dit.key, dit.instance, dit.related, options, true );
						dit.changed = false;
					}
				});
			}
		}
function ( model , attr , options ) { options = options ? _ . clone ( options ) : { } ; this . setKeyContents ( attr ) ; this . changed = false ; var related = this . findRelated ( options ) ; this . setRelated ( related ) ; if ( ! options . silent ) { var dit = this ; Backbone . Relational . eventQueue . add ( function ( ) { // The `changed` flag can be set in `handleAddition` or `handleRemoval` if ( dit . changed ) { dit . instance . trigger ( 'change:' + dit . key , dit . instance , dit . related , options , true ) ; dit . changed = false ; } } ) ; } }
Event handler for `change:<key>`.
If the contents of the key are changed, notify old & new reverse relations and initialize the new relation.
Event handler for change : <key > . If the contents of the key are changed notify old & new reverse relations and initialize the new relation .