Nano Hash - криптовалюты, майнинг, программирование

Backbone: Получение данных с сервера в JQGrid

У меня есть веб-приложение, которое в настоящее время использует JQGrid, но я пытаюсь внедрить Backbone.js для улучшения организации кода. То, что я пытаюсь сделать, это получить данные с сервера с помощью коллекции, а затем добавить информацию JSON в мой определенный JQGrid, но я не могу заставить его работать. Мой JQGrid определяется следующим образом:

var tareasHumanasTable = $("#grillaTH").jqGrid({
        datatype: 'local',
        height: 'auto',
        colNames:[ colNames...],
        colModel:[ colModel...]
}

И моя модель и коллекция определяются следующим образом:

window.TareaHumana = Backbone.Model.extend();

window.TareaHumanaCollection = Backbone.Collection.extend({
    model:  TareaHumana,
    url: "bandejaTareas/buscarTH"
});

У меня есть кнопка, при нажатии которой начинается связь с сервером. Сейчас делает так:

$(function(){
    $("#botonBuscar").bind('click',function(){
        var tareaHumanaList = new TareaHumanaCollection();
        tareaHumanaList.fetch({data: $("#formBandejaTareas").serializeObject()});
        //alert("tareaHumanaList.toJSON(): " + tareaHumanaList.toJSON());
        tareaHumanaList.each(function(tareaHumana, i){
            //alert("tareaHumana.toJSON(): " + tareaHumana.toJSON());
            tareasHumanasTable.jqGrid('addRowData', (i + 1), tareaHumana.toJSON());
        });

Этот код вообще не работает. С помощью Firebug я убедился, что сервер отправляет данные в правильном формате, но код не работает. Самое странное, что когда я раскомментирую строки "alert(...)", все начинает работать.


  • Вы почти не опубликовали код jqGrid и никаких тестовых данных JSON. Я сам не использую магистраль, но часть использования jqGrid, которую вы опубликовали, очень неэффективна. addRowData — самый медленный способ заполнения сетки. Поскольку вы его вообще не заполняете, проблема может быть в данных из tareaHumana.toJSON(). Данные должны соответствовать colModel сетки, но, как я уже писал ранее, использование addRowData в цикле - действительно плохая идея. Вы должны лучше описать, как вы должны заполнить сетку. В любом случае, некоторые примеры ответа JSON и colModel действительно необходимы. 09.06.2012
  • Проблема не имеет ничего общего с парсингом JSON, она связана только с асинхронной выборкой из Backbone. При заполнении Grid я следовал этой рекомендации: jqgrid">stackoverflow.com/questions/8646622/. У вас есть другая идея? 11.06.2012
  • Использование addowData особенно плохо. Я бы изменил демо, которое вы называете этим. Важно создать сетку с данными Если вы создадите сетку, а затем добавите 100 строк, то вы увидите, что при вставке одной строки или при изменении одной на странице положение всех существующих элементов будет пересчитано. Создавая сетку с помощью gridview: true, data: mydata, вы можете создать сетку с полным содержимым тела за одну операцию. Чем больше у вас рядов, тем больше будет видна разница. 11.06.2012

Ответы:


1

Суть в том, что fetch является асинхронным. Поэтому, если вы сразу вызовете each после fetch, вероятно, ваша коллекция не будет заполнена. Вы должны использовать обратный вызов success. Например, взгляните на этот ответ.

09.06.2012

2

Попробуйте использовать тип данных: jsonstring и создайте функцию формата в коллекции, чтобы обеспечить правильный формат данных для jqgrid.

09.06.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

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

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..


© 2024 nano-hash.ru, Nano Hash - криптовалюты, майнинг, программирование