Выравнивание логики уничтожения моделей #174

Merged
merged 2 commits into from Nov 8, 2013

Projects

None yet

3 participants

@edoroshenko

Сделал следующее:

  1. Убрал пересоздание модели видом при её удалении. Вообще, это очень странное было место: удаляешь модель, а она раз и обратно создаётся.

  2. Сделал, чтобы при уничтожении модели её экземпляр физически не удалялся. Она теперь только инвалидируется, а экземпляр остаётся. Это необходимо, потомучто вид, зависящй от этой модели, может даже после её удаления обращаться к ней через this.models.

  3. Метод ns.Model.find теперь возвращает только валидные модели. Чтобы после удаления модели она не искалась через find. Метод ns.Model.get работает как раньше - возвращает существующий экземпляр (вне зависимости от статуса) или создаёт новый.

В результате, как мне кажется, стало ровнее и понятнее работать удаление моделей.

  1. Убрал копипаст метода getRequestViews из viewCollection. Я это сделал в предыдущем заходе, и хоть оно в результате и не пригодилось решил оставить.
@chestozo chestozo commented on the diff Nov 2, 2013
src/ns.model.js
@@ -508,8 +520,8 @@ ns.Model.destroy = function(model) {
};
// Проверяем, есть ли модель в кэше и валидна ли она.
-ns.Model.isValid = function(id, key) {
- var model = ns.Model.get(id, key);
+ns.Model.isValid = function(id, params) {
@chestozo
chestozo Nov 2, 2013

Вот тут как-то жёстко меняется api. А зачем?

@edoroshenko
edoroshenko Nov 5, 2013

просто меняется имя переменной =)

@edoroshenko
edoroshenko Nov 5, 2013

сюда всегда по факту передаются параметры

@chestozo
chestozo Nov 5, 2013

Ааааа )

@doochik doochik and 1 other commented on an outdated diff Nov 6, 2013
src/ns.model.js
*/
ns.Model.find = function(id, params) {
+ var model = this._find(id, params);
+ if (model && model.isValid()) {
@doochik
doochik Nov 6, 2013

А как мне теперь получить любую закешированную модель?

@edoroshenko
edoroshenko Nov 6, 2013

Поговорили голосом.
А как мне теперь получить любую закешированную модель?
С помощью ns.Model.get. Теперь нет существенной разницы между отсутствием экземпляра модели и наличием невалидного экземпляра.

Договорились переименовать метод find в getValid, чтобы название было правдой.

@doochik doochik merged commit 33819ae into master Nov 8, 2013

1 check passed

Details default The Travis CI build passed
@doochik doochik deleted the model-destruction-refactor branch Nov 8, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment