2016-12-10 4 views
0

Сообщество Hello StackOverflow, Я ищу некоторую помощь для перехода с Datatables 1.9 до 1.10. Нотация не то же самое, поэтому для того, чтобы «старый» код работал с новой версией Datatables, мне нужно отобразить их. Я написал JSon объект «отображение», как и что (это просто экстракт), основанный на этой ссылке https://datatables.net/upgrade/1.10-convert:Mapping DataTables migration 1.9 to 1.10

var mapping : {"oLanguage" :  {"sEmptyTable" : "language.emptyTable"}}; 

Теперь я хотел бы создать объект JSON из «language.emptyTable», чтобы:

{"language" : {"emptyTable"}} 

Я пробовал несколько различных рекурсивных функций, но ... вызываю стек и так далее.

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

Большое спасибо за помощь.

ответ

0

Я работал над ним со вчерашнего дня и нашел ответ только после того, как я отправил это сообщение ... Так что, если кто-то заинтересован в ответ, вот оно:

<script> 
var txt = 'language.search'; 
var fn = function(str) { 
    var obj = {}; 
    var pos = str.indexOf('.'); 
    //console.log(pos); 
    if(pos != '-1') { 
     //console.log(str.substr(pos+1)); 
     obj[str.substr(0,pos)] = fn(str.substr(pos+1)); 
    } 
    else if (str.length) { 
     obj[str] = {}; 
     //return obj; 
    } 
    return obj; 
}; 

console.log(fn(txt)); 

0

Там нет необходимости конвертировать параметры, jQuery DataTables 1.10 имеет обратную поддержку опций, используемых jQuery Datatables 1.9.

См Converting parameter names for 1.10:

Изменение является полностью обратно совместимы и вы можете продолжать использовать старые версии имен параметров и методов API, как вы были раньше.

+0

Да, я знаю, но это не так для всех вариантов, только основы (я проверил в коде). И мне нужно сопоставление для Tabletools (новые «кнопки») тоже ... – pwet