Class: ModelCollection

ns. ModelCollection

Модель-коллекция.

new ns.ModelCollection()

ns.modelCollection.js, line 10

Создает модель-коллекцию.

Tutorials:

Extends

Members

protected_versionnumber

Data version.

DEFAULT_ITEMS_SPLITString

Дефолтное значение jpath по которому сплит будет искать коллекцию

keystring

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

modelsArray.<ns.Model>

Массив элементов колелкции.

modelsArray.<ns.Model>

Массив с моделями - элементами коллекции.

paramsobject

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

Methods

_incVersion()

ns.modelCollection.js, line 308

bindModel(model, eventName, callback)

ns.modelCollection.js, line 236

Подписывает callback на событие eventName модели model

Name Type Description
model ns.Model
eventName string
callback function

inherited canRequest(){boolean}

ns.model.js, line 411

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

clear()

ns.modelCollection.js, line 344

Очищает коллекцию от моделей. Не путать с remove.

Fires:

inherited destroy()

ns.model.js, line 185

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

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

inherited destroyWith(models)

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

inherited extractData(result){*}

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

inherited extractError(result){*}

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

inherited finishRequest()

ns.model.js, line 506

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

inherited abstractfixError(error){Vow.Promise}

ns.model.js, line 374

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

Name Type Description
error *
See:
  • isErrorCanBeFixed

inherited 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(){Object|*}

ns.modelCollection.js, line 46

inherited getError(){*}

ns.model.js, line 333

inherited getRequestParams(){object}

ns.model.js, line 403

getSelfVersion(){number}

ns.modelCollection.js, line 301

Returns data version (included items version).

inherited getVersion(){number}

ns.model.js, line 450

Returns data version.

inherited hasDataChanged(data){boolean}

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

insert(models, index){Boolean}

ns.modelCollection.js, line 376

Вставляет подмодели в коллекцию

Name Type Description
models Array.<ns.Model> | ns.Model

– одна или несколько подмоделей для вставки

index number optional

– индекс позиции, на которую вставить подмодели. Если не передано - вставка в конец.

Fires:
Returns:
признак успешности вставки

inherited invalidate()

ns.model.js, line 176

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

inherited isDo(){boolean}

ns.model.js, line 442

inherited abstractisErrorCanBeFixed(error)

ns.model.js, line 362

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

Name Type Description
error *
See:
  • fixError

inherited isValid(){boolean}

ns.model.js, line 204

onItemChanged(evt, model, jpath)

ns.modelCollection.js, line 262

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

Name Type Description
evt string

Событие 'ns-model-changed' от элемента коллекции

model ns.Model

Измененный элемент коллекции.

jpath string

JPath, по которому произошли изменения.

Fires:

onItemDestroyed(evt, model)

ns.modelCollection.js, line 293

Метод вызывается, когда уничтожается элемент коллекции.

Name Type Description
evt string

Событие 'ns-model-before-destroyed' от элемента коллекции.

model ns.Model

Уничтожаемый элемент коллекции.

onItemTouched(evt, model)

ns.modelCollection.js, line 281

Метод вызывается, когда у элемента коллекции меняется версия.

Name Type Description
evt string

Событие 'ns-model-touched' от элемента коллекции

model ns.Model

Измененный элемент коллекции.

inherited prepareRequest(requestID){ns.Model}

ns.model.js, line 494

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

Name Type Description
requestID number

ID запроса.

inherited preprocessData(data){*}

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

remove(models){Boolean}

ns.modelCollection.js, line 441

Удаляет элементы коллекции.

Name Type Description
models ns.Model | Number | Array.<ns.Model> | Array.<Number>

– подмодели или индексы подмодели, которую надо удалить

Fires:
Returns:
признак успешности удаления.

inherited 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

inherited set(jpath, value, options)

ns.model.js, line 252

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

Name Type Description
jpath string

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

value *

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

options ns.Model~setOptions optional

Флаги.

Fires:

inherited setData(data, options){ns.Model}

ns.model.js, line 295

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

Name Type Description
data *

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

options ns.Model~setOptions optional

Флаги.

Fires:

inherited setError(error)

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

inherited touch()

ns.model.js, line 463

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

Fires:

Events

ns-model-changed

ns.modelCollection.js, line 266

Сообщает об изменении элементов коллекции.

Name Type Description
info object

Объект с информацией об изменениях.

Name Type Description
model ns.Model

Измененный элемент коллекции.

jpath string

JPath, по которому произошли изменения.

inherited ns-model-init

ns.model.js, line 82

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

ns-model-insert

ns.modelCollection.js, line 421

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

Name Type Description
insertion array

Массов вставленных элементов.

ns-model-remove

ns.modelCollection.js, line 484

Сообщает об удалении элементов коллекции.

Name Type Description
modelsRemoved array

Массив удаленных моделей.

inherited ns-model-touched

ns.model.js, line 472

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

comments powered by Disqus