Sha256: ec8207cc04b69cd320b1e86e405fcbabc1330902ed7da7d00c6416623376d886

Contents?: true

Size: 835 Bytes

Versions: 3

Compression:

Stored size: 835 Bytes

Contents

this.LiveRecord.plugins.LiveDOM || (this.LiveRecord.plugins.LiveDOM = {});

if window.jQuery == undefined
  throw new Error('jQuery is not loaded yet, and is a dependency of LiveRecord')

LiveRecord.plugins.LiveDOM.applyToModel = (Model, pluginValue) ->
  return if pluginValue != true

  # DOM callbacks

  Model._updateDomCallback = ->
    $updateableElements = $('[data-live-record-update-from]')

    for key, value of this.attributes
      $updateableElements.filter('[data-live-record-update-from="' + Model.modelName + '-' + this.id() + '-' + key + '"]').text(this[key]())

  Model._destroyDomCallback = ->
    $('[data-live-record-destroy-from="' + Model.modelName + '-' + this.id() + '"]').remove()

  Model.addCallback('after:update', Model._updateDomCallback)
  Model.addCallback('after:destroy', Model._destroyDomCallback)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
live_record-0.1.2 app/assets/javascripts/live_record/plugins/live_dom.coffee
live_record-0.1.1 app/assets/javascripts/live_record/plugins/live_dom.coffee
live_record-0.1.0 app/assets/javascripts/live_record/plugins/live_dom.coffee