Backbone.js - ID против IDAttribute против CID
Я изучал Backbone.js в течение нескольких недель, и я чувствую себя комфортно, используя представления с моделями, маршрутизаторами и коллекциями.
У меня все еще есть большие пробелы:
Какая связь между
id
,cid
, а такжеidAttribute
? Как они влияют друг на друга?Когда именно новая модель получит свой идентификатор? Ответственен ли сервер за его назначение? Нужно ли добавить его в
defaults
модели (может быть, как функция)? Может бытьaddNewModel
функция должна сделать это?
4 ответа
Какая связь между
id
,cid
, а такжеidAttribute
? Как они влияют друг на друга?
И cid, и id должны быть уникальными идентификаторами модели и могут использоваться для извлечения модели из коллекции.
Разница между ними заключается в том, что cid
присваивается клиентской стороной backbone.js и полезно, если у вас нет фактического идентификатора, либо потому, что модель еще не сохранена на сервере, либо, возможно, вы даже не сохраняете ее в БД (возможно, вы использовать localStorage). id
Атрибут должен быть идентификатором модели, которая поступает с вашего сервера (это идентификатор в вашей базе данных). idAttribute
сообщает магистрали, какое "поле" с вашего сервера следует использовать для обновления id
атрибут, по умолчанию это установлено в "id", но, как сказано в документации, если ваш сервер использует что-то еще, вы можете установить его на это (в приведенном примере это "_id").
Когда именно новая модель получит свой идентификатор? Ответственен ли сервер за его назначение? Нужно ли добавить его в
defaults
модели (может быть, как функция)? Может бытьaddNewModel
функция должна сделать это?
Они должны получить новые идентификаторы при сохранении на сервере, и вам не нужно устанавливать их вручную (в зависимости от idattribute
) если вам не нужно больше контроля над процессом.
id - идентификатор, который может быть установлен вручную при создании модели или заполняется, когда модель была сохранена на сервере (см. "idAttribute" внизу, чтобы увидеть соединение). Это идентификатор, который отправляется на сервер, когда модель загружается или обновляется с сервера, например, для модели Person этот вызов будет выполнен, если идентификатор равен 123, "/ person / 123"
cid - уникальный идентификатор, устанавливающий мою основную модель для внутреннего использования
idAttribute - это определяет, какое свойство будет действовать в качестве уникального идентификатора (по умолчанию "id"), когда модель была сохранена на сервере, например, уникальный ключ модели на сервере может быть определен как "personId", поэтому при вызове fetch Модель отобразит ответ сервера от "personId" на идентификатор в базовой модели.
id
это идентификатор модели сервера, cid
это идентификатор клиента.
- модель сервера: такая как Rails Model
- модель клиента: модель магистрали
id
свойство модели автоматически присваивается на основе id
установить в хэш атрибутов модели. В идеале это идентификатор, который вы получаете от остальных API для запрашиваемого ресурса. С другой стороны, cid
является идентификатором, временно назначенным для каждой модели и полезен, пока фактический идентификатор не определен для объекта. Например, модель, отправленная в коллекцию, которая еще не была сохранена, может быть обработана с помощью cid
до тех пор, пока он не будет сохранен в базе данных и для него не будет сгенерирован фактический идентификатор