Почему сетка Devextreme переполняет родительский контейнер и почему она не создает вертикальные полосы прокрутки?

Если вы не хотите использовать aggregate, другое решение должно использовать find, а затем сортировать результаты на стороне клиента с помощью array#sort :

Если значения $in являются примитивными типами, такими как числа, вы можете использовать такой подход, как:

var ids = [4, 2, 8, 1, 9, 3, 5, 6];
MyModel.find({ _id: { $in: ids } }).exec(function(err, docs) {
    docs.sort(function(a, b) {
        // Sort docs by the order of their _id values in ids.
        return ids.indexOf(a._id) - ids.indexOf(b._id);
    });
});

Если значения $in являются непримитивными типами, например ObjectId s, требуется другой подход поскольку indexOf сравнивается по ссылке в этом случае.

Если вы используете Node.js 4.x +, вы можете использовать Array#findIndex и ObjectID#equals , чтобы отрегулировать это, изменив функцию sort на:

docs.sort((a, b) => ids.findIndex(id => a._id.equals(id)) - 
                    ids.findIndex(id => b._id.equals(id)));

Или с любой версией Node.js, с подчеркиванием / lodash's findIndex :

docs.sort(function (a, b) {
    return _.findIndex(ids, function (id) { return a._id.equals(id); }) -
           _.findIndex(ids, function (id) { return b._id.equals(id); });
});

0
задан TomR 15 January 2019 в 21:45
поделиться

1 ответ

Вы должны задать сетке некоторую высоту (в пикселях), если хотите, чтобы она отображала вертикальные полосы прокрутки. Это относится к большинству пользовательских интерфейсов, а не только к Devextreme (JS). Если вы установите высоту 100%, то для того, чтобы это работало, некоторый элемент в иерархии DOM должен иметь фиксированную ширину.

0
ответ дан Rob 15 January 2019 в 21:45
поделиться
Другие вопросы по тегам:

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