src/vuewild.js
function bindAsArray (vm, key, source, cancelCallback) {
  var array = []
  defineReactive(vm, key, array)

  var onAdd = source.on('child_added', function (snapshot, prevKey) {
    var index = prevKey ? indexForKey(array, prevKey) + 1 : 0
    array.splice(index, 0, createRecord(snapshot))
  }, cancelCallback)

  var onRemove = source.on('child_removed', function (snapshot) {
    var index = indexForKey(array, _getKey(snapshot))
    array.splice(index, 1)
  }, cancelCallback)

  var onChange = source.on('child_changed', function (snapshot) {
    var index = indexForKey(array, _getKey(snapshot))
    array.splice(index, 1, createRecord(snapshot))
  }, cancelCallback)

  var onMove = source.on('child_moved', function (snapshot, prevKey) {
    var index = indexForKey(array, _getKey(snapshot))
    var record = array.splice(index, 1)[0]
    var newIndex = prevKey ? indexForKey(array, prevKey) + 1 : 0
    array.splice(newIndex, 0, record)
  }, cancelCallback)

  vm._wilddogListeners[key] = {
    child_added: onAdd,
    child_removed: onRemove,
    child_changed: onChange,
    child_moved: onMove
  }
}
function bindAsArray (vm, key, source, cancelCallback) {
  var array = []
  defineReactive(vm, key, array)

  var onAdd = source.on('child_added', function (snapshot, prevKey) {
    var index = prevKey ? indexForKey(array, prevKey) + 1 : 0
    array.splice(index, 0, createRecord(snapshot))
  }, cancelCallback)

  var onRemove = source.on('child_removed', function (snapshot) {
    var index = indexForKey(array, _getKey(snapshot))
    array.splice(index, 1)
  }, cancelCallback)

  var onChange = source.on('child_changed', function (snapshot) {
    var index = indexForKey(array, _getKey(snapshot))
    array.splice(index, 1, createRecord(snapshot))
  }, cancelCallback)

  var onMove = source.on('child_moved', function (snapshot, prevKey) {
    var index = indexForKey(array, _getKey(snapshot))
    var record = array.splice(index, 1)[0]
    var newIndex = prevKey ? indexForKey(array, prevKey) + 1 : 0
    array.splice(newIndex, 0, record)
  }, cancelCallback)

  vm._wilddogListeners[key] = {
    child_added: onAdd,
    child_removed: onRemove,
    child_changed: onChange,
    child_moved: onMove
  }
}
function bindAsArray ( vm , key , source , cancelCallback ) { var array = [ ] defineReactive ( vm , key , array ) var onAdd = source . on ( 'child_added' , function ( snapshot , prevKey ) { var index = prevKey ? indexForKey ( array , prevKey ) + 1 : 0 array . splice ( index , 0 , createRecord ( snapshot ) ) } , cancelCallback ) var onRemove = source . on ( 'child_removed' , function ( snapshot ) { var index = indexForKey ( array , _getKey ( snapshot ) ) array . splice ( index , 1 ) } , cancelCallback ) var onChange = source . on ( 'child_changed' , function ( snapshot ) { var index = indexForKey ( array , _getKey ( snapshot ) ) array . splice ( index , 1 , createRecord ( snapshot ) ) } , cancelCallback ) var onMove = source . on ( 'child_moved' , function ( snapshot , prevKey ) { var index = indexForKey ( array , _getKey ( snapshot ) ) var record = array . splice ( index , 1 ) [ 0 ] var newIndex = prevKey ? indexForKey ( array , prevKey ) + 1 : 0 array . splice ( newIndex , 0 , record ) } , cancelCallback ) vm . _wilddogListeners [ key ] = { child_added : onAdd , child_removed : onRemove , child_changed : onChange , child_moved : onMove } }
Bind a wilddog data source to a key on a vm as an Array.

@param {Vue} vm
@param {string} key
@param {object} source
@param {function|null} cancelCallback
Bind a wilddog data source to a key on a vm as an Array .