Class: Model

ns. Model

Базовый класс для моделей. Конструктор пустой, чтобы легче было наследоваться. Вся инициализация делается в _init(), который вызывает фабрикой ns.Model.get().

new ns.Model()

ns.model.js, line 11
Tutorials:
Fires:

Mixes In

Members

protected_versionnumber

Data version.

keystring

Уникальный ключ модели.

paramsobject

Параметры модели.

Methods

staticns.Model.define(id, info, base)

ns.model.js, line 642

Определяет новую модель.

Name Type Default Description
id string

Название модели.

info object optional
Name Type Description
ctor function optional

Конструтор.

methods object optional

Методы прототипа.

params object optional

Параметры модели, участвующие в формировании уникального ключа.

base ns.Model | String ns.Model optional

Базовый класс для наследования или название ранее объявленной модели.

staticns.Model.destroy(model)

ns.model.js, line 592

Completely destroy model and delete it from cache.

Name Type Description
model ns.Model

staticns.Model.destroyWith(targetModel, withModels)

ns.model.js, line 862

Модель должна удалиться вместе с переданными моделями.

Name Type Description
targetModel ns.Model

модель, которую надо удалить при удалении связанных моделей

withModels ns.Model | Array.<ns.Model>

связанные модели

staticns.Model.get(id, params){ns.Model}

ns.model.js, line 541

Models factory. Returns cached instance or creates new.

Name Type Description
id string

Model's ID.

params object optional

Model's params.

staticns.Model.getKeyAndParams(id, params, info){object}

ns.model.js, line 777

Возвращает ключ и собственные параметры модели.

Name Type Description
id string
params object
info object optional

staticns.Model.getValid(id, params){ns.Model|null}

ns.model.js, line 566

Returns valid cached model instance.

Name Type Description
id string

Model's ID.

params object optional

Model's params

staticns.Model.info(id){object}

ns.model.js, line 717

Returns model's info

Name Type Description
id string

Model ID.

Throws:
Throws exception if model is not defined.

staticns.Model.infoLite(id){object}

ns.model.js, line 750

Returns model's info without processing.

Name Type Description
id string

Model ID.

staticns.Model.invalidate(id, filter)

ns.model.js, line 844

Инвалидирует все модели с заданным id, удовлетворяющие filter.

Name Type Description
id string

ID модели.

filter function optional

Функция-фильтр, принимающая параметром модель и возвращающая boolean.

staticns.Model.isCollection(model){boolean}

ns.model.js, line 884
Name Type Description
model ns.Model

staticns.Model.isValid(id, params){boolean}

ns.model.js, line 613
Name Type Description
id string
params object

staticns.Model.key(id, params, info){string}

ns.model.js, line 765
Name Type Description
id string
params object
info object optional

staticns.Model.traverse(id, callback)

ns.model.js, line 893

Проходит по всем инстансам модели и передаёт их в callback.

Name Type Description
id string

идентификатор модели

callback function

canRequest(){boolean}

ns.model.js, line 411

Возвращает, можно ли запрашивать / перезапрашивать модель.

destroy()

ns.model.js, line 185

Уничтожает модель.

Fires:
  • ns.Model#event:ns-model-before-destroyed
  • ns.Model#event:ns-model-destroyed

destroyWith(models)

ns.model.js, line 530
Name Type Description
models Array.<ns.Model>

extractData(result){*}

ns.model.js, line 421
Name Type Description
result *

extractError(result){*}

ns.model.js, line 432
Name Type Description
result *

finishRequest()

ns.model.js, line 506

Сообщает моделе о том, что ее запрос завершился. При этом модель может быть в любом статусе.

abstractfixError(error){Vow.Promise}

ns.model.js, line 374

Возвращает Promise, который должен исправить ошибку и после которого модель можно перезапросить

Name Type Description
error *
See:
  • isErrorCanBeFixed

get(jpath){*}

ns.model.js, line 224

Returns data matched by jpath.

Name Type Description
jpath string
Example

var foo = model.get('.foo'); // model.data.foo. var bar = model.get('.foo.bar'); // model.data.foo.bar (если foo существует).

getData(){null|*}

ns.model.js, line 212

getError(){*}

ns.model.js, line 333

getRequestParams(){object}

ns.model.js, line 403

getVersion(){number}

ns.model.js, line 450

Returns data version.

hasDataChanged(data){boolean}

ns.model.js, line 325
Name Type Description
data *

invalidate()

ns.model.js, line 176

Инвалидирует модель.

isDo(){boolean}

ns.model.js, line 442

abstractisErrorCanBeFixed(error)

ns.model.js, line 362

Этот метод нужно переопределить, если модель имеет возможность исправлять ошибки. Например, запросы подписываеются временным token. Если токен протух, то модель прозрачно может его перезапросить и сделать перезапрос себя.

Name Type Description
error *
See:
  • fixError

isValid(){boolean}

ns.model.js, line 204

prepareRequest(requestID){ns.Model}

ns.model.js, line 494

Подготавливает модель к запросу.

Name Type Description
requestID number

ID запроса.

preprocessData(data){*}

ns.model.js, line 395
Name Type Description
data *

select(jpath){array}

ns.model.js, line 237

Returns data matched by jpath. This methods always returns array of results.

Name Type Description
jpath string

set(jpath, value, options)

ns.model.js, line 252

Сохраняет value по пути jpath.

Name Type Description
jpath string

jpath до значения.

value *

Новое значение.

options ns.Model~setOptions optional

Флаги.

Fires:

setData(data, options){ns.Model}

ns.model.js, line 295

Устанавливает новые данные модели.

Name Type Description
data *

Новые данные.

options ns.Model~setOptions optional

Флаги.

Fires:

setError(error)

ns.model.js, line 341
Name Type Description
error *

touch()

ns.model.js, line 463

Инкрементирует версию модели.

Fires:

Type Definitions

setOptionsobject

Опции изменения модели.

Properties:
Name Type Argument Default Description
silent boolean <optional>
false

Не генерировать событие об изменении (ns-model-changed).

jpath string <optional>

jpath, по которому произошло изменение

Events

ns-model-changed

ns.model.js, line 480

Сообщение о том, что модель изменилась.

Name Type Description
evt string

Название события

ns-model-init

ns.model.js, line 82

Модель создана и проинициализованна.

ns-model-touched

ns.model.js, line 472

Событие сообщает об инкрементации версии модели.

comments powered by Disqus