Open chestozo opened 10 years ago
У меня есть пример, когда существуют 2 экземпляра: один с параметром, второй без. Это странное решение (так получилось из-за особенностей бекенда), но вот есть такое. Правда, кажется, я там могу явно передавать null
, а exception можно кидать в случае, если параметр undefined
У меня есть пример, когда существуют 2 экземпляра: один с параметром, второй без
Это можно решить с помощью функции, или с помощью массива:
ns.Model.define('test-m', {
params: [
{
id: null,
name: null
},
{
id: null
}
]
});
Но если не хватает параметров для ключа - это как бы треш, что мы строим по тому, что есть.
Да не надо массив. Просто "параметра нет" - это должно быть не falsy, а undefined
.
Но если не хватает параметров для ключа - это как бы треш, что мы строим по тому, что есть
Согласен
Я не считаю, что надо кидать ошибку. У нас есть модели, где много параметров. В примере @chestozo мне этот список фактически придется продублировать N^2 раз.
Хотя я не против подумать на синтакисом обязательности параметров.
У нас есть модели, где много параметров.
Ну так я про то, что сейчас у тебя эти модели могу строиться абсолютно с произвольным набором параметров и никто ничего не контроллирует. Хотя есть валидные наборы в этой куче, а есть невалидные. Нет?
Нет, не так, все параметры валидные.
Вот у тебя модель зависит от p1
, p2
, p3
.
В какой-то момент у тебя оказывается только p1
и p2
.
Твоя модель будет создана только с p1
и p2
.
Это ок?
Да, мне имеено так и надо. Все остальные параметры для меня пустые
Мне кажется, это жесть, когда ты не контроллируешь параметры.
А если у тебя модель в зависимости от параметров возвращает разные данные? Параметры ведь нужны для запроса данных ещё и тут их вариация может повлечь за собой баги.
У меня это всплыло всё, когда мы апали noscript сейчас и модели начали создаваться с параметрами вида.
А раньше они свои параметры выбирали из ns.page.current.params
.
Так вот модель начала создаваться с "тем что есть" (вместо ns.page.current.params
- view.params
) и всё работало хорошо, кроме того, что данные запрашивались неверные.
Это не жесть и все контроллиурется. Как я тебе уже говорил, попробуй с твоей идеалогией сделать norton commander.
Это не жесть и все контроллиурется. Как я тебе уже говорил, попробуй с твоей идеалогией сделать norton commander.
Я ведь не против идеалогии "разные наборы параметров". Но то, что "всё контроллируется я не согласен". Пример:
ns.Model.define('panel-content', {
params: {
'folder-id': null,
'letter-id': null,
'sorting': null
}
});
// Вот это работает и выглядит ок:
ns.Model.get('panel-content', { 'folder-id': 'inbox', 'letter-id': 1 });
ns.Model.get('panel-content', { 'letter-id': 2 });
// Вот это работает, но, кажется, неок:
ns.Model.get('panel-content', { 'sorting': 'asc' });
в моей идеологии все ок
ну ок
Хотя я не против подумать на синтакисом обязательности параметров.
Я тоже, но не сейчас. Давайте оставим пока открытым
Вот такой пример:
Никаких ошибок, ничего. Сейчас у нас ключ модели строится по тому, что есть. Разве это правильно?
Мне вот в данный момент кажется, что правильно кидать ошибку :) А вам?