我有一些奇怪的問題,當我把一個模塊內的回調函數,該庫似乎無法找到的功能,所以如果我使用:Google+的簽到回調函數,如果一個模塊內
var Auth = (function() {
var gPlusSignCallback = function() {
console.log("Google plus signin call back done!");
};
return {
gPlusSignCallback: gPlusSignCallback
};
}());
而在剪斷的Google+帳戶登錄按鈕的HTML我使用:
data-callback="Auth.gPlusSignCallback"
我得到以下錯誤:
Callback function named "Auth.gPlusSignCallback" not found
如果我把gPlusSignCallback放在模塊外部,一切正常。我檢查了文檔,它說這個值必須是全局命名空間中的一個函數。那麼它是不是通過設計工作?我需要使全局變量引用模塊中的函數嗎?
是的,這就是我最終做的。很好奇,是否有任何具體原因呢? – jasalguero
原因是登錄按鈕使用字符串來指定功能。因此,沒有乾淨的(例如不使用eval)方式通過字符串獲取非全局/私有閉包函數引用。 正如Silvano提到的,如果你不想要全局回調,你可以直接使用JavaScript進行渲染而不是標記。 – class