     @
   )
 
+  ###
+    @private
+
+    Setup load handler when img inserted into the DOM.
+
+    @method _setupElement
+    @return null
+  ###
   _setupElement: Ember.on('didInsertElement', ->
-    Ember.run.scheduleOnce('afterRender', @, 'srcDidChange')
+    $img = @$()
+    didImageLoad = get @, 'didImageLoad'
+    $img.on('load.image-view', didImageLoad)
+    null
   )
 
+  ###
+    @private
+
+    Teardown load handler when img about to be removed from DOM.
+
+    @method _teardownElement
+    @return null
+  ###
   _teardownElement: Ember.on('willDestroyElement', ->
     $img = @$()
-    didImageLoad = get @, 'didImageLoad'
-    $img.off('load.image-view', didImageLoad)
+    $img.off('load.image-view', get(@, 'didImageLoad'))
+    null
   )
 
+  ###
+    @private
+
+    Set `_src` to `src`.
+
+    @method _syncSrc
+    @chainable
+  ###
+  _syncSrc: ->
+    $img = @$()
+    setProperties(@, {
+      loading: true
+      _src: get(@, 'src')
+    })
+    get(@, 'didImageLoad').call($img) if $img.prop 'complete'
+    @
+
 `export default EllaImageComponent`


    @property loading
    @type Boolean
    @default false
  ###
  loading: false

  ###
    The src path (URL) of the image to display in this element.


    @property classNameBindings
    @type Array
    @default ['loading']
  ###
  classNameBindings: ['loading']

  ###
    The type of element to create for this view.
