Как передать дополнительные параметры пользовательской функции sortStrategies JsGrid?

#javascript #jquery #javascript-objects #jsgrid

#javascript #jquery #javascript-объекты #jsgrid

Вопрос:

Я использую JsGrid v1.5.3, и я успешно создал подобное поле с помощью JsGrid

 {
    name: "1_price",
    className: 'wordwrap',
    title: 'Test Price',
    type: "text",
    width: 75,
    filtering: false,
    sorting: true,
    sorter: 'priceSorter',
    itemTemplate: function(value, item) {
        if (typeof value === 'undefined') value = '';
        if (item amp;amp; item.hasOwnProperty('is_sold_out') amp;amp; item.is_sold_out == 1) {
            return '<span class="sold-out-strikethrough">'   value   '</span>';
        } else {
            return '<span>'   value   '</span>';
        }
    }
} 
  

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

 window.jsGrid.sortStrategies.priceSorter = function(price1, price2) {
   console.log(arguments)
}
  

из console.log(arguments) он отправляет только 2 значения параметров, как я могу расширить его, чтобы я мог получать другие параметры, например, дополнительными параметрами является имя поля (1_price):

 window.jsGrid.sortStrategies.priceSorter = function(price1, price2, fieldName) {
   console.log(arguments)
}
  

Ответ №1:

Вы можете отправить несколько параметров, определив их в массиве или объекте JSON.

 window.jsGrid.sortStrategies.priceSorter = function({price1:price1, price2:price2, fieldName:fieldName}) {
   console.log(arguments)
}
  

Или

 var params = {price1:price1, price2:price2, fieldName:fieldName};
window.jsGrid.sortStrategies.priceSorter = function(params) {
   console.log(arguments)
}
  

Или

 var params = [price1, price2, fieldName];
window.jsGrid.sortStrategies.priceSorter = function(params) {
   console.log(arguments)
}