2016-03-16 71 views
0

我需要在流星項目加載此腳本: <script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="my-api-key"></script>加載Dropbox的dropin.js腳本流星

我第一次嘗試做對Template.Image.onRendered一個$('head').append('<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="my-api-key"></script>'),但問題是,庫加載每次模板被渲染,並給出這個錯誤:dropins.js included more than once

我也看了一下等待解決方案包https://github.com/DerMambo/wait-on-lib,但我無法將數據應用程序密鑰或ID傳遞給路由器等待功能。

對於如何加載此腳本,您有任何建議嗎?

+0

它是否導致任何功能問題? 「dropins.js不止一次包含」信息只是一個警告,它實際上將停止在該點處運行腳本,因此唯一會造成的影響是額外的網絡調用來加載它。 (並希望它應該被緩存) – Greg

+0

您可能是對的,我可以忽略警告,但流星似乎無法查看第二個渲染上的按鈕。我懷疑這與路由設置有關。 –

回答

0

我從來沒有使用過dropbox sdk,但也許這會幫助你,或者給出一些想法。

if(window.Dropbox){ 
    // Nice, is already loaded 
} 
else { 
    $("head") 
     .append('<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="your-api-key"></script>'); 
    var head = document.getElementsByTagName('head')[0]; 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = 'https://www.dropbox.com/static/api/2/dropins.js'; 
    head.appendChild(script); 
    script.onload = function(){ 
     //whatever, I Want It All! 
    }; 
} 

您可以將Template.template_name.onCreated代碼塊添加此。