2014-09-15 4 views
1

Я пытаюсь сделать простое приложение с Intel XDK и Parse.com в качестве бэкэнд-сервиса.Intel XDK listview sort

Я сделал список, как this tutorial показывает.

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

В простом файле HTML5-JS я делаю это с query.ascending("createdAt");, как описано в документации для JavaScript на Parse.com. Как я могу это сделать с помощью Intel XDK?

Буду признателен за каждый полезный ответ.

EDIT после первого ответа от Криса Перкинса

мне удалось интегрировать свою базу данных Parse.com в Intel XDK в качестве внешнего веб-службы в соответствии с this answer.

Так, в -----/WWW/XDK/Услуги/сервис-methods.js, часть метода вызывается моей службы выглядит следующим образом:

intel.xdk.services.iodocs_.New_Service = ((function (credentials) { 
    var exports = {}; 

    exports.ServiceObject = function(params) { 
    var url = 'https://api.parse.com/1/classes/ServiceObject'; 
    return $.ajax({ 
      url : url, 
      headers : { 
      'X-Parse-Application-Id' : credentials.apiKey, 
      'X-Parse-REST-API-Key' : credentials.apiSecret 
      } 
     }); 
    }; 

    return exports; 
}))(intel.xdk.services.credentials.New_Service,intel.xdk.services.iodocs_.helpers); 

Если я правильно понял массив, который я хочу отображать обратно, - это значение «результатов» в телеобъекте моей службы, и все это находится в фигурных скобках var exports = {};. Я прав или нет?

ответ

0

Я пробовал то, что предлагалось выше, но список даже не был создан.

Решение не связано с базой данных, связанной с приложением.

Я понял, что список создан в шаблоне и что решение лежит в файле backbone.js. Итак, я открыл -----/www/js/backbone_support.JS и попытался вмешаться, делая что-то похожее на этот

var myCollection = Backbone.Collection.extend({ 
     model: myModel, 
     comparator: function(item) { 
      return -item.get(''); 
     } 
    }); 

или найти где-нибудь строку с чем-то вроде этого

$('#list').append(listItem.render().el); и изменить .append() к .prepend().

Ничего не помогло мне. Но в конце концов я заметил эти строки в коде

//non-destructive reverse 
var nd_reverse = function(arr){ return _.initial(arr, 0).reverse(); }; 

Я удалил .reverse() и это случилось. Теперь в списке отображаются новейшие записи моей базы данных Parse.com вверху.

Я не знаю, является ли это приложением или если оно подходит для более сложных вопросов, но я надеюсь как-то помочь.

1

это функция, которую мы еще не предоставили. Мы очень хотим, чтобы пользователи могли фильтровать, преобразовывать и переупорядочивать данные запроса на обслуживание. Если у вас есть предложения или идеи, сообщите нам об этом. Наша идея прямо сейчас заключается в том, что у нас будет соглашение. Если служба называется intel.xdk.foo, то все, что называется intel.xdk.foo.filter, будет автоматически вызываться таким образом, чтобы оно получало результирующие данные в качестве аргумента и могло возвращать измененные данные.

Но этого еще нет. Между тем, сделайте следующее:

1 - В XDK нажмите на кнопку Настройки в правом углу панели инструментов. Перейдите на вкладку служб и поверните OFF.

2 - Откройте yourproject/www/xdk/services/service-methods.js Найдите метод, который вы вызываете с помощью своего метода обслуживания. Вероятно, это выглядит примерно так:

return $.ajax({ 
     url: url, 
     type: 'GET' 
    }); 

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

return $.ajax({ 
     url: url, 
     type: 'GET' 
    }).then(function(data){ 
     return Array.prototype.reverse(data); 
    }); 

Имеет ли это смысл?

+0

Вы видите мой ответ? Это было мое решение. – GSav