我正在將現有的Web應用程序轉換爲Polymer。 Web應用程序由組件(在Knockout組件體系結構中)和模塊組成。兩者都使用RequireJS加載。我看到如何將Knockout組件轉換爲Polymer自定義元素,但不知道如何處理JavaScript模塊。 RequireJS模塊返回一個JavaScript對象,該對象通過參數傳遞給依賴於它的JavaScript到「define」函數。如果模塊代碼是通過HTML導入而不是RequireJS加載的,似乎沒有辦法獲得該對象。如何將AMD模塊導入Polymer自定義元素?
例如,若干現有組件使用moment.js
模塊進行日期/時間操作。他們通過RequireJS加載它,它向它傳遞了對象的引用。在其中一篇Polycast視頻中,Rob Dobson表示,推薦的做法是編寫一個moment.html
文件,其中包含<script>
標籤以導入moment.js
。然後,聚合物自定義元素可以執行moment.html
的HTML導入,但這不會使組件訪問由moment.js
模塊返回的對象。 Moment不會將該對象放入全局名稱空間,那麼Polymer自定義元素如何訪問該時刻對象?
我使用聚合物的「時刻」。您唯一需要做的就是使用源代碼導入腳本,然後您可以直接在您的ploymer函數中使用它,如'moment(date).format('D MMM YYYY')' – a1626
這個時刻的使用已被廢棄。使用它會在控制檯中產生以下消息:「棄用警告:不推薦使用通過全局作用域訪問Moment,並且將在即將發佈的版本中刪除它。」重點在於應用程序中的模塊不會將任何內容放入全局名稱空間,而是通過RequireJS「define」函數將引用傳遞給相關組件。 –
你做了一個涼亭安裝的時刻? – a1626