我嘗試使用Angular 2連接到Google Calendar API,以便我可以在正在構建的Web應用程序上顯示即將發生的事件。我瀏覽了Google日曆JavaScript快速入門教程,儘管所有內容都位於index.html
文件中,但它完美運行。我能夠設置Google API並將客戶端ID和API密鑰放入我的JavaScript代碼中,並正確列出了指定日曆中即將發生的事件。使用Angular 2實現Google Calendar API
鏈接到快速入門教程: https://developers.google.com/google-apps/calendar/quickstart/js
一旦我得到了JavaScript的教程工作,我想簡單地實現使用Angular2相同的功能,使用組件/服務,而不是隻是原始的JavaScript腳本標記在index.html
文件中。我大約一半成功。
問題:我收到錯誤,說明"Cannot find name 'gapi'"
。
當我第一次打開調用代碼以加載Google日曆信息的頁面時,出現這些錯誤,說明gapi
未定義。 gapi
分別在代碼中存在幾個位置,特別是在從Google Calendar API驗證和檢索事件數據的服務中。但是,如果我離開該頁面並返回,則數據將無誤地出現。我曾嘗試加載使用異步等在index.html
適當的腳本標籤,如下所示:
<script src="https://apis.google.com/js/client.js?onload=checkAuth" async></script>
我該如何解決這個問題?我的代碼是非常類似於下面鏈接庫看出:
https://github.com/stefanreichert/angular2-google-calendar-example
感謝您的回覆。不幸的是,'npm install'路徑不起作用。我相信全局變量的想法可能會奏效,但是當你說「只需將以下內容添加到TypeScript文件中」時,你指的是哪個文件?另外,在全局簡單定義之後還有其他要求嗎? – cbrawl
如果您不使用全球打字文件,我認爲您需要在您使用它的任何文件中聲明它。不,沒有其他要求。但我不知道爲什麼'@ types'不起作用。這個對我有用。 –
我在服務組件中放置了'聲明vargapi:any',我稱之爲'gapi.more.stuff',儘管當我開始npm時錯誤從命令行中消失了,但是當我打開頁面時錯誤仍然發生。我仍然在'Uncaught(承諾):TypeError:無法在開發人員控制檯中讀取undefined'的屬性'events'。有什麼想法嗎? – cbrawl