2016-05-04 4 views
0

Ich versuche, ein Bild in meiner Vorlage auf dem Erfolg eines Ajax Anrufs zu finden ... aber ich kann nicht!Ich finde kein Element in meiner Vorlage nach Ajax Anruf

Hier ist mein Code:

class AvatarView extends Backbone.View 
    template: JST["backbone/templates/twitter_avatar"] 

    initialize:(options) -> 
    @user = options.user 

    render: => 
    @$el.html(@template({ 
     view_id: @cid 
     avatar_url: @user.avatar() || "src/image_not_found.png" 
    })) 
    @$el.find(".avatar").on('error', @_reloadAvatar) 

    _reloadAvatar: => 
    $.ajax 
     type: 'GET' 
     url: "/profiles/api/twitter/#{@user.social_network_id()}/avatar_url" 
     success: (response) => 
     if response.success 
      avatar_url = response.avatar_url 
     else 
      avatar_url = 'https://abs.twimg.com/sticky/default_profile_images/default_profile_0_normal.png' 
     @$el.find(".avatar").attr('src', avatar_url) # Here is the problem 

Wenn ich debuggen dies:

  • "this" ist eine Instanz von AvatarView und
  • @ $ el ein leeres div ist, und kann‘ t finde die Avatarklasse.

Hier ist die Vorlage:

<img src="<%= avatar_url %>" alt="avatar" class="avatar" id="avatar-image-<%= view_id %>"> 

mir, wie ich fiel ich mein DOM-Objekt oder etwas ähnliches zu verlieren ..

+0

Ich bin mir nicht sicher, warum das passiert, aber was passiert, wenn Sie den Onerror Callback tatsächlich den Avatar und Cal des Benutzers ändern l die Renderfunktion wieder? – itdoesntwork

Antwort

0

ich verstehe immer noch nicht, warum es nicht funktioniert, aber Ich löste mein Problem mit dem Event-Parameter: