Как импортировать Scalajs Facade с реактивной системой? Ошибка: $g.algoliasearch не является функцией
Я хочу использовать фасад Algoliasearch в своем приложении scalajs, я импортировал его через sbt, но в пользовательском интерфейсе я вижу, что $g.algoliasearch не является функцией. Я предполагаю, что это из-за отсутствующих библиотек JavaScript. Я включил в свой пакет package.json зависимости Algoliaseach-client-javascript и установил пряжу.
Теперь я не уверен, когда я использую фасад, как я предоставляю / связываю эти зависимости. Если бы кто-то мог предоставить пример кода, который был бы полезен
Я говорю о любом из этих фасадов https://github.com/DefinitelyScala/scala-js-algoliasearch
Я добавил jsDependencies, как это
jsDependencies ++= Seq( "org.webjars.bower" % "github-com-algolia-algoliasearch-client-javascript" % "3.18.1" / "3.18.1/reactnative.js") Я надеялся, что выше будет объявите что-то подобное в моем файле scalajs.output.ios var Algoliasearch = require(...), но я не вижу ни одной записи, подобной этой, и я все еще не уверен, как импортировать ее, чтобы избежать следующей ошибки:
$g.algoliasearch не является функцией
Любая помощь, что я здесь скучаю, пожалуйста?
1 ответ
Есть два варианта:
1) Просто включите зависимости JavaScript как отдельные <script>
теги, как обычно для JavaScript и HTML. Обратите внимание, что они должны прийти до <script>
тег для приложения Scala.js.
2) Используйте механизм jsDependencies для создания файла -jsDeps.js, который собирает все ваши зависимости в один файл, и включает его в <script>
тег. (Опять же, перед самой заявкой.)
Обратите внимание, что библиотека фасада может обеспечить jsDependencies
и ваше приложение может использовать это, но я лично не рекомендую это - это может привести к конфликтам версий между зависимостями. Это имеет тенденцию работать лучше всего, если ваше приложение просто загружает сам JavaScript.
Если вы уверены, что ваш HTML-файл уже содержит JavaScript, и вы получаете эту ошибку, убедитесь, что JavaScript загружается до запуска приложения Scala.js.