2013-01-25 45 views
0

在我的骨干应用程序中,我使用了addthis按钮。 我的问题是,当我将应用程序导航到一条路线并返回主路线时,按钮(fb,twitter,share)消失。但是,如果我刷新页面,然后按钮显示,任何帮助表示赞赏。addthis按钮消失?

在此先感谢

的代码如下......我的模板文件的

var mainProfileView = Backbone.View.extend({ 
    el:"#inner", 
    template: _.template($('#main-profile-tmpl').html()), 
    initialize: function(){ 
     _.bindAll(this, "render"); 
     this.render(); 
    }, 
    events:{ 
     'click .profile-details' : 'detailedProfile', 
     'click .credibility' : 'credibility', 
     'click #moreReviews': 'moreReview', 
     'click #moreReferences' : 'moreReferences' 
    }, 
    detailedProfile:function(){ 
     router.navigate('/detailedProfile',true); 
    }, 
    credibility : function() { 
     router.navigate('/credit',true); 
    }, 
    moreReview : function() { 
     router.navigate('/moreReviews',true); 
    }, 
    moreReferences : function() { 
     router.navigate('/moreReferences',true); 
    }, 
    render: function(){ 
     this.$el.html(this.template()); 
    } 
}); 

var creditView = Backbone.View.extend({ 
    el:"#inner", 
    template: _.template($('#credit-tmpl').html()), 
    initialize: function(){ 
     _.bindAll(this, "render"); 
     this.render(); 
    }, 
    render: function(){ 
     this.$el.html(this.template()); 
    } 
}); 

ProfileRouter = Backbone.Router.extend({ 
    initialize : function() { 

    }, 
    routes : { 
     '' : 'profile', 
     'detailedProfile' : 'detailedProfile', 
     'credit' : 'credit' 
    }, 
    profile : function() { 
     $('#img-loader').fadeIn(); 
     currentView = new mainProfileView(); 
     currentView.render(); 
    }, 
    credit : function() { 
     $('#img-loader').fadeIn(); 
     if (currentView){ 
      currentView.undelegateEvents(); 
      delete currentView; 
     } 

     currentView = new creditView(); 
     currentView.render(); 
    }, 
    moreReviews : function() { 
     $('#img-loader').fadeIn(); 
     if (currentView){ 
      currentView.undelegateEvents(); 
      delete currentView; 
     } 

     review = new Reviews; 
     review.fetch({ 
      data: { 
        profile_id : profile_id 
      }, 
      type : 'POST', 
      success: function(model,response,options) { 
       currentView = new moreReviewView({reviews : model}); 
       currentView.render(); 
      }, 
      error: function(model,response,options) { 
       //console.log(response.responseText); 
      } 

     }); 
    } 
}); 

一部分是

<script type="text/template" id="main-profile-tmpl"> 
....... 
      <div class="block with-padding service-area-container"> 
       <h5>Social</h5> 
       <div class="addthis_toolbox addthis_default_style "> 
        <a class="addthis_button_facebook_like" fb:like:layout="button_count"></a> 
        <a class="addthis_button_tweet"></a> 
        <a class="addthis_button_pinterest_pinit"></a> 
        <a class="addthis_counter addthis_pill_style"></a> 
       </div> 
      </div> 
    </script> 
+0

请表明你的代码 – doniyor

+0

你有没有设法解决这个问题? – Cristiano

回答

3

你不仅需要调用addthis_widget每个脚本你加载模板的时候,但你需要清除'缓存'的变量。

if (window.addthis) { 
     window.addthis = null; 
     window._adr = null; 
     window._atc = null; 
     window._atd = null; 
     window._ate = null; 
     window._atr = null; 
     window._atw = null; 
     } 
    var uniqueUrl = "http://s7.addthis.com/js/300/addthis_widget.js#pubid=XXX"; 
    $.getScript(uniqueUrl) 
    .done(function(script) { 
     addthis.init(); 
    });