2014-11-17 1 views
0

Я хочу загрузить файл javascript, но не хочу, чтобы для него был создан тег «<script type="text/javascript" src="..."></script>». Я использую железо-маршрутизатор. Таким образом, я хочу, чтобы этот js-файл выполнялся в hook on-onAfterAction, т. Е. После загрузки шаблона.Метеор: загрузите файл javascript, но не выполняйте его. Выполнение по запросу

Я имею в виду следующее способов сделать это:

  1. Один способ поместить этот файл в «общественном» каталог и использовать функцию «$ .getScript» загружать и выполнять это по запросу. Но эти файлы не будут уменьшаться и уплотняться в один файл. Кроме того, это потребует другой выборки на n/w.
  2. Другой способ - создать пакет и включить этот файл в пакет. Но тогда мне придется заключить весь файл в функцию и «экспортировать» эту функцию в пакет. И выполняйте эту функцию по требованию.
  3. Третий способ заключается в том, чтобы поместить эти файлы в каталог «client» и вызвать «$ .getScript ('/ client/js/...». Но файл js будет выполняться дважды, поскольку тег «<script type="text/javascript" src="..."></script>» будет созданы для него ..

существует ли лучший способ сделать это, чтобы файл локально доступен и может выполняться по запросу?

+0

Обертывание код внутри функции и вызывать эту функцию, когда вам нужно? Почему вы не хотите загружать его при запуске? Если он содержит конфиденциальную информацию, вы можете поместить его в папку/server. – user3557327

ответ

0

из того, что я понимаю о Meteor. Весь JavaScript выполняется без для загрузки тегов <script></script>. В зависимости от того, как вы выглядите хорошо, если бы это был открытый скрипт, я бы поместил его в папку client и использовал Template.[your-template-name].rendered в некотором роде, где вы c загрузите этот конкретный скрипт после визуализации шаблона.

http://docs.meteor.com/#/basic/Template-onRendered