Массив функций - Javascript - PullRequest
0 голосов
/ 09 мая 2018

Я разрабатываю систему vue-based, и для своих таблиц я использую это: https://github.com/matfish2/vue-tables-2

Компонент имеет множество опций. Существует возможность определить пользовательские шаблоны ячеек для манипулирования данными перед их отображением, например, для столбца «create_at»:

 templates: {
                created_at(h, row) {                   
                  return this.formatDate(row.created_at);
                },    
              //(...)                      
            }

Я могу добавить и другие шаблоны:

var user_id = function(h,row){return row.id};
...

templates: {
                created_at(h, row) {                   
                  return this.formatDate(row.created_at);
                },    
              user_id,                  
              (...) // etc

            }

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

 var custom_template = [
        { user_id(h,row){return row.id} },
        { user_name(h,row){return row.name} },
        { created_at(h, row){return this.formatDate(row.created_at)} }                 
    ];

 templates: {                
            custom_templates                                                    
        }

РЕДАКТИРОВАТЬ 1: Так что я мог бы иметь что-то вроде:

templates: {                
          user_id(h,row){return row.id} ,
          user_name(h,row){return row.name} ,
          created_at(h, row){return this.formatDate(row.created_at)}                                                    
        }

Это не работает, но возможно ли это? Нужен ли мне дополнительный код для этого? Спасибо! =)

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Вам необходимо объединить решение Игоря для создания массива функций с некоторой формой расширения массива, такой как синтаксис

0 голосов
/ 09 мая 2018

var custom_template = [
  function user_id(h, row) {
    return row.id;
  },
  function user_name(h, row) {
    return row.name;
  },
  function created_at(h, row) {
    return row.created_at;
  }
];

custom_template.forEach(
  item => console.log(item(1, {
    id: 1,
    name: "test",
    created_at: new Date()
  })));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...