Class: View

ns. View

Класс, реализующий View

new ns.View()

ns.view.js, line 19

Создает View. Конструктор не используется напрямую, View создаются через ns.View.create.

Tutorials:

Mixes In

Members

staticns.View.defaultModelEvents

События моделей, обрабатываемые видом по умолчанию

staticns.View.ERROR_CODESnumber

Объект с описанием бросаемых исключений.

Properties:
Name Type Default Description
1 number Can't redefine '%s'
2 number Can't find '%s' to extend '%s'
3 number '%s' is not defined
4 number '%s' can't find handler '%s' for model '%s'

Не найден обработчик события модели.

5 number Can't find method '%s' in '%s'

Не найден обработчик события.

6 number Can't find node for '%s'

Не найдена нода вида.

7 number you cannot specify params and params+ at the same time
8 number you cannot specify params and params- at the same time
9 number Model %s is not defined!
10 number Could not generate key for view %s
11 number #patchLayout MUST returns valid layout ID
12 number #patchLayout MUST returns layout with ns.Box at top

$nodejQuery

Собственная нода вида

asyncboolean

Флаг того, что view может быть асинхронным. Факт того, что сейчас view находится в асинхронном состоянии определяется this.status и this.asyncState

asyncStateBoolean

Флаг, означающий, что view грузится асинхронно.

idstring

ID (название) вида

keystring

Уникальный ключ вида

nodeHTMLElement

Собственная нода вида

paramsobject

Параметры вида.

STATUSns.V.STATUS

See:

Methods

staticns.View.assert(truthy, errorCode, args)

ns.view.js, line 1858

Ассертер.

Name Type Description
truthy boolean

Любое значение, которое проверяется на истинность.

errorCode ns.View.ERROR_CODES

Код бросаемого исключения.

args array optional

Массив аргументов.

staticns.View.create(id, params, async){ns.View}

ns.view.js, line 1839

Фабрика ns.View

Name Type Default Description
id string

ID view.

params object optional

Параметры view.

async Boolean false optional

Может ли view бы асинхронным.

staticns.View.define(id, info, base){function}

ns.view.js, line 1458

ns.Events представляет из себя объект {"eventDecl1": "handler1", "eventDecl2": "handler2"}. "eventDecl" записывается в виде "eventName [ selector ]". "selector" опционален, если его нет, то события регистрируется на ноду View. "handler" может быть строка (тогда она заменится на метод прототипа) или функция. Все хендлеры биндятся на экземпляр View. Разделение на типы событий происходит автоматически по следующим правилам (в порядке приоритета):

  • если selector === "window" || selector == "document", то обработчик регистрируется по событию show
  • если eventName === "resize", то обработчик регистрируется по событию show
  • если eventName === "scroll", то обработчик регистрируется по событию htmlinit с помощью $viewNode.find(selector).on(eventName, handler)
  • иначе обработчик регистрируется по событию htmlinit с помощью $viewNode.on(eventName, selector, handler)
Name Type Default Description
id string

Название View.

info ns.View~declaration optional

Декларация вида.

base function | String ns.View optional

Базовый View для наследования

Returns:
View.

staticns.View.getKey(id, params, info){string}

ns.view.js, line 1725
Name Type Description
id string
params object
info object optional

staticns.View.getKeyAndParams(){object}

ns.view.js, line 1734

Возвращает ключ объекта и параметры. В этом методе собрана вся логика рерайтов параметров при создании view

staticns.View.info(id){ns.View~declaration}

ns.view.js, line 1525

Возвращает обработанную информацию о View.

Name Type Description
id string

Название вида.

Throws:
Бросает исключения, если вид не определен

staticns.View.infoLite(id){ns.View~declaration}

ns.view.js, line 1513

Возвращает сохраненную декларацию ns.View без обработки.

Name Type Description
id string

Название вида.

Throws:
Бросает исключения, если вид не определен

protected__onHide()

ns.view.js, line 259

Убираем обработчики событие при скрытии/замены ноды.

protected__onHtmldestroy()

ns.view.js, line 228

Внутренний обработчик htmldestroy

_getCommonTree(){ns.View~UpdateTree}

ns.view.js, line 889

Возвращает общее дерево видов. Этот метод используют ns.View, ns.ViewCollection и ns.Box

protected_htmlinit(events)

ns.view.js, line 237

Обработчик htmlinit

Name Type Description
events array optional

Массив событий.

protected_saveModelsVersions()

ns.view.js, line 1286

Safe models versions to track changes.

protected_saveModelVersion(modelId)

ns.view.js, line 1307

Safe model version to track changes.

Name Type Description
modelId string

ID модели

protected_setNode(node)

ns.view.js, line 1094

Set view node

Name Type Description
node HTMLElement

protected_show(events){boolean}

ns.view.js, line 276

Показывает View

Name Type Description
events array optional

Массив событий.

beforeUpdateHTML(events, toHide)

ns.view.js, line 1174

Собирает события ns-view-hide и ns-view-destroy

Name Type Description
events object
toHide boolean

Вид надо спрятать, так решил его родитель

destroy()

ns.view.js, line 1388

Уничтожает себя и все внутренние виды, удаляет ноду из DOM. Этот вид больше никогда не будет живым, метод используется для очистки памяти.

getModel(id){ns.Model}

ns.view.js, line 1060

Returns model.

Name Type Description
id string

Model ID

getModelData(id){*}

ns.view.js, line 1069

Returns data of model.

Name Type Description
id string

Model ID

protectedhideAndUnbindEvents()

ns.view.js, line 246

Скрывает view

invalidate()

ns.view.js, line 549

Инвалидует себя и своих потомков.

isLoading(){boolean}

ns.view.js, line 574

isModelsValid(modelsVersions){Boolean}

ns.view.js, line 634

Возвращает true, если все модели валидны.

Name Type Description
modelsVersions object optional

Также проверяем, что кеш модели не свежее переданной версии.

isModelsValidWithVersions(){boolean}

ns.view.js, line 625

Returns true if models are valid and not be updated after last view update.

isNone(){boolean}

ns.view.js, line 582

Returns true if view has status NONE

isOk(){boolean}

ns.view.js, line 566

isValid(){boolean}

ns.view.js, line 590

Возвращает true, если блок валиден.

isValidWithDesc(){boolean}

ns.view.js, line 606

isVisible(){boolean}

ns.view.js, line 656

Возвращает true, если вид сейчас виден на странице.

keepValid()

ns.view.js, line 1315

Оставляет вид валидным после изменения моделей

patchTree(tree){object}

ns.view.js, line 988

Этот метод является точкой расширения для приложений или плагинов. Метод должен вернуть объект, который будет добавлен к дереву. Все свойства, конфликтующие с внутренними, будут перетерты.

Name Type Description
tree object

Дерево наложения.

Example
ns.View.prototype.patchTree = function(tree) {
    // добавляем в дерево ссылки на экземпляры вида и моделей
    return {
        instance: {
            view: this,
            models: this.models
        }
    };
}

update(params, options){Vow.Promise}

ns.view.js, line 1344

Запускает на себе ns.Update

Name Type Description
params object optional

Дополнительные параметры. Могут использоваться при ручном запуске.

options ns.Update~options optional

Опции исполнения. Если указан execFlag, то запускается ASYNC-обновление.

updateAfter(promise, params, updateInstance){Vow.Promise}

ns.view.js, line 1324

Запускает собственный ns.Update после завершения promise.

Name Type Description
promise Vow.Promise

Промис, после которого запустить ns.Update

params object

Параметры для запуска ns.Update.

updateInstance ns.Update

Type Definitions

declarationobject

Декларация вида

Properties:
Name Type Argument Description
ctor function <optional>

Конструтор.

methods object <optional>

Методы, дополняющие прототип класса.

models object | array <optional>

Массив или объект с моделями, от которых зависит View. Для объекта: true означает модель должна быть валидной для отрисовки view.

events object <optional>

События, на которые подписывается View.

params function | object | array <optional>

Декларация для вычисления параметров вида.

params+ object <optional>

Объект с дополнительными параметрами для вида.

params- array <optional>

Массив с параметрами, которые надо убрать из ключа.

paramsRewrite function <optional>

Функция, изменяющая параметры после создания стандартными способами.

UpdateTreeobject

Дерево для шаблонизации вида.

Properties:
Name Type Description
box boolean

Флаг указывающий, что это бокс.

collection boolean

Флаг указывающий, что это вид-коллекция.

key string

Ключ вида.

models object.<string, *>

Объект с данными моделей. Не стоит использовать его напрямую. Лучше вызывать yate-функции model('modelName') и modelError('modelName').

params object.<string, *>

Собственные параметры вида.

state string

Текущее состояние вида. ok/error/loading/placeholder

views object.<string, ns.View~UpdateTree>

Объект с дочерними видами, используется для дальнейшего наложения шаблонов через ns-view-content.

Events

ns-view-destroyed

ns.view.js, line 1394

Вид сейчас будет уничтожен.

comments powered by Disqus