API

alight.debug

Turn on a logging debug information

  • alight.debug.scan - logging scan operations
  • alight.debug.directive - logging binding directives
  • alight.debug.parser - logging parsing expressions
  • alight.debug.watch - logging function $watch
  • alight.debug.watchText - logging function $watchText

alight.autostart = false

Don't call alight.bootstrap after start

alight.bootstrap(element)

Manual start applications, element - DOM element or array of elements. If element is undefined then Angular Light will start all al-app on the document. If alight.autostart = true, the method will be called after the DOM is ready

alight.applyBindings(scope, element, config)

Bind the scope to the DOM element

  • scope - Scope object
  • element - DOM element
  • config.skip_top = false - Skip binding the top DOM element
  • config.skip_attr = ['al-repeat', 'al-app'] - Skip attributes for a binding, for the top element

alight.Scope()

Create Scope

alight.controllers

Dictionary of controllers

alight.filters

Dictionary of filters

alight.directives

Dictionary of directives

alight.nextTick(callback)

Execute the function on next tick

alight.getController(name, scope)

Take a controller by name. A controller can be located in alight.controllers, in global scope

Scope

Scope.$watch(name, callback, option)

Set the tracking variable. Also you can track system events.

name:

  • expression - Expression/model
  • $destroy - Track a destroying scope
  • $any - Track a modifying any object
  • $finishScan - a callback is executed as soon as $scan finish work
  • $finishBinding - the callback is called when a binding process finishes, sample
  • function - Track the result of the function, the function are called every iteration of $scan.

option:

  • option = true or option.isArray = true - watch an array
  • option.init = true - Execute callback
  • option.readOnly = true - You can use it if the callback doesn't modify the scope. (an optimization option).
  • option.deep = true - a deep comparison for the object.

Scope.$compile(expression, config)

Compile an expression

var scope = alight.Scope()
var fn = scope.$compile('"hello " + title')
scope.title = 'linux'
fn() // return "hello linux"
scope.title = 'macos'
fn() // return "hello macos"

config.input - list of external variables

var fn = scope.$compile('title + v', { input:['v'] })
fn(' X') // return "macos X"

If your expression contain "return", you should use: config.no_return = true

var fn = scope.$compile('title = v', { input:['v'], no_return:true })
fn('linux') // scope.title = "linux"

Scope.$eval(expression)

Execute an expression

Scope.$watchText(tpl, callback)

Track the template

Scope.$compileText(tpl). (Depricated).

Compile the template

var scope = alight.Scope()
var fn = scope.$compileText('Hello {{title}}!')
scope.title = 'linux'
fn() // return "Hello linux!"

Scope.$evalText(tpl)

Evalute the template

Scope.$new(isolate)

Create a child Scope, if isolate = true, then child scope will not be inherited from parent scope.

Scope.$destroy()

Destroy the Scope.

Scope.$scan(callback or options)

Start the search for changes

Arguments:

  • callback - Method will be called when $scan finishes a work, even if $scan has already started from other a place.

options

  • callback - see above.
  • top - Choose the root scope for current scanning (depricated).
  • late = (true/false) - If there is a few $scan commands, aLight will call only last one.
var scope = alight.Scope()
scope.$watch('title', function(value) { console.log('title =', value) }) // make observing for a book
scope.title = 'new'
scope.$scan()
// print title = new
scope.title = 'linux'
scope.$scan()
// print title = linux
scope.$scan()
// do nothing

Scope.$getValue(name)

Take the value of the variable, also you can use Scope.$eval

Scope.$setValue(name, value)

Set the value of the variable

scope.var = 5;
scope.path.var = 7;

// equal
scope.$setValue('var', 5);
scope.$setValue('path.var', 7);

API

alight.debug

Включить вывод отладочной информации

  • alight.debug.scan - Логироать операции сканирования
  • alight.debug.directive - Логировать пивязывание дректив
  • alight.debug.parser - Логировать парсинг выражений
  • alight.debug.watch - Логировать ф-ию $watch
  • alight.debug.watchText - Логировать ф-ию $watchText

alight.autostart = false

Отключить alight.bootstrap при старте.

alight.bootstrap(element)

Ручной запуск aLight приложения, element - DOM элемент, либо массив элементов. Если element не указан то будет запуск всех al-app на странице. Функция вызывается когда DOM готов, если alight.autostart = true

alight.applyBindings(scope, element, config)

Ф-ия привязывает scope-объект к DOM элементу

  • scope - Scope объект
  • element - DOM элемент
  • config.skip_top = false - Пропустить привяываение начального DOM элемента, начать с дочерних элементов
  • config.skip_attr = ['al-repeat', 'al-app'] - Пропустить указанные атрибуты элемента

alight.Scope()

Создать новый Scope

alight.controllers

Словарь с контролерами

alight.filters

Словарь с фильтрами

alight.directives

Словарь с директивами

alight.nextTick(callback)

Выполнить ф-ию на следующем тике

alight.getController(name, scope)

Получить контроллер по имени. Контроллер может находиться в alight.controllers либо в глобальном окружении либо в scope

Scope

Scope.$watch(name, callback, option)

Установить слежение за изменениями выражения/переменной. Так же есть возможность подписаться на системные события.

name:

  • expression - Выражение/модель
  • $destroy - Следать за разрушением scope
  • $any - Следить за изменением любого объекта
  • $finishScan - callback вызывается после завершения работы $scan
  • $finishBinding - Callback вызывается по окончанию процесса привязки, пример
  • function - Следать за результатом ф-ии, вызывается каждую итерацию в $scan

option:

  • option = true или option.isArray = true - Отслеживать массив
  • option.init = true - Вызвать callback
  • option.readOnly = true - Флаг для оптимизации, устанавливается если callback не изменяет scope.
  • option.deep = true - Делает глубокое сравнение объектов.

Scope.$compile(expression, config)

Откомпиллировать выражение для быстрого выполнения в будущем, все переменные и ф-ии берутся из scope

var scope = alight.Scope()
var fn = scope.$compile('"hello " + title')
scope.title = 'linux'
fn() // return "hello linux"
scope.title = 'macos'
fn() // return "hello macos"

Если в выражении нужно использовать переменные или ф-ии не из scope, то нужно их указать в config.input

var fn = scope.$compile('title + v', { input:['v'] })
fn(' X') // return "macos X"

Если выражение является командой (выражение без return), то нужно это указать: config.no_return = true

var fn = scope.$compile('title = v', { input:['v'], no_return:true })
fn('linux') // scope.title = "linux"

Scope.$eval(expression)

Выполнить (вычислить) выражение

Scope.$watchText(tpl, callback)

Отслеживать изменения шаблона

Scope.$compileText(tpl). (Устарело)

Скомпилировать шаблон

var scope = alight.Scope()
var fn = scope.$compileText('Hello {{title}}!')
scope.title = 'linux'
fn() // return "Hello linux!"

Scope.$evalText(tpl)

Вычислить шаблон

Scope.$new(isolate)

Создать дочерний Scope, если isolate = true, то дочерний scope не будет отнаследован (будет пустой) с ссылкой $parent на родителя.

Scope.$destroy()

Разрушить Scope.

Scope.$scan(callback or options)

Запустить поиск изменеий в Scope-дереве и вызов callback ф-ий.

Параметры:

  • callback - Метод вызовется по окончанию работы $scan, даже если $scan был запущен в другом месте.

options:

  • callback - см. выше
  • top - Указать с какого Scope начинать обработку (устарело)
  • late = (true/false) - Не выполнять $scan если впереди ещё есть вызов $scan, выполнит только последний $scan.
var scope = alight.Scope()
scope.$watch('title', function(value) { console.log('title =', value) }) // make observing for a book
scope.title = 'new'
scope.$scan()
// print title = new
scope.title = 'linux'
scope.$scan()
// print title = linux
scope.$scan()
// do nothing

Scope.$getValue(name)

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

Scope.$setValue(name, value)

Установить значение переменной.

scope.var = 5;
scope.path.var = 7;

// эквивалентно
scope.$setValue('var', 5);
scope.$setValue('path.var', 7);
comments powered by Disqus