Как я получаю количество объекта (размер) хранилища данных додзе?

Обычно, если что-то сознательно не задумано как общественность, я делаю ее частной.

, Если ситуация возникает, где мне нужен доступ к той частной переменной или методу от производного класса, я изменяю его от частного до защищенного.

Этого почти никогда не происходит - я - действительно не поклонник при всем наследовании, поскольку это не особенно хороший способ смоделировать большинство ситуаций. Во всяком случае продолжите, никакие заботы.

я сказал бы, что это прекрасно (и вероятно лучший способ пойти об этом) для большинства разработчиков.

очевидный факт вопроса , если некоторый другой разработчик приезжает год спустя и решает, что им нужен доступ к Вашей переменной члена парламента, не занимающего официального поста, они просто собираются отредактировать код, изменить его на защищенный, и продолжиться с их бизнесом.

единственные реальные исключения к этому - то, если Вы находитесь в бизнесе поставки двоичного dll's в форме черного ящика третьим лицам. Это состоит в основном из Microsoft, тех 'Пользовательских поставщиков' Управления DataGrid, и возможно нескольких других крупных приложений, которые поставлются с библиотеками расширяемости. Если Вы не находитесь в той категории, не стоит расходовать время/усилие для волнения о такого рода вещи.

5
задан Arlo 27 October 2009 в 23:58
поделиться

2 ответа

Формат проводных данных любого хранилища данных полностью зависит от хранилища. Чтобы вы могли получить общее количество элементов (и другие метаданные), оно должно быть возвращено как часть ответа. Это единственный способ разбивки на страницы на стороне сервера.

Все реализованные мной хранилища ожидают, что данные будут содержать атрибут totalCount , например:

{
  identifier: 'id',
  items: [
    { id: 123, name: 'aaa', ... },
    { id: 456, name: 'bbb', ... },
    ...
  ],
  totalCount: 525
}

Хранилище сохраняет его, когда запрос возвращается (в onComplete ). Затем значение отображается с помощью метода getTotalCount () в хранилище.

При использовании вместе с параметрами запроса start и count это позволяет у вас должна быть удобная разбивка на страницы с помощью ajax ("Показано 1-50 из 525").

Поскольку это не является частью API, основные реализации API чтения не реализуют его. Форма этой техники (похожая на то, что я сделал), похоже, реализована в dojo.data.QueryReadStore , так что вы, вероятно, можете посмотреть и там.

1
ответ дан 13 December 2019 в 19:30
поделиться

An example at dojocampus demonstrates one way. Here a fetch without query parameter returns all the items in the store.

var store = new some.Datastore();
var gotItems = function(items, request){
  console.log("Number of items located: " + items.length);
};
store.fetch({onComplete: gotItems});
8
ответ дан 13 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: