Сплав и требуют внешнего JS

Прямо сейчас у меня есть функция в моем alloy.js файл, который является глобальным.

Alloy.Globals.indicator = function(parent)
{
  var view = Ti.UI.createView({
    width: '100%',
    height: '100%',
    backgroundColor: '#000',
    opacity: 0.6,
    visible: false
  });

  function osIndicatorStyle()
  {
    style = Ti.UI.iPhone.ActivityIndicatorStyle.PLAIN;
    if ('iPhone OS' !== Ti.Platform.name) style = Ti.UI.ActivityIndicatorStyle.DARK;
    return style;
  };

  var activityIndicator = Ti.UI.createActivityIndicator({
    style: osIndicatorStyle(),
    height: Ti.UI.FILL,
    width: 100
  });

  view.add(activityIndicator);
  parent.add(view);

  function openIndicator()
  {
    view.visible = true;
    activityIndicator.show();
  }

  view.openIndicator = openIndicator;

  function closeIndicator()
  {
    activityIndicator.hide();
    view.visible = false;
  }

  view.closeIndicator = closeIndicator;
  return view;
};

Я бы предпочел не иметь эту большую функцию как глобальную, а вместо этого импортировать ее в нужные мне файлы require,

Я искал и не могу понять, во-первых, где разместить этот файл, а во-вторых, как на самом деле "требует" его.

Все это просто создает представление, которое действует как модальное представление с индикатором активности. Функция также включает в себя две функции, чтобы показать и скрыть его.

1 ответ

Решение

Создайте папку с именем "lib" внутри папки "app".

Внутри этой папки создайте файл, который называется как угодно, например functions.js:

var functionName = function(){
     //your function code here
}
exports.functionName = functionName;

В вашем контроллере:

var functions = require('functions');
functions.functionName();

Возможно, вы также захотите взглянуть на виджеты, которые представляют собой повторно используемые компоненты в комплекте с view/controller/styles, так как я думаю, что это немного лучше соответствует вашим требованиям.

Ссылка на документы

Другие вопросы по тегам