Мы хотим, чтобы все наши вызовы Ajax в нашем веб-приложении получили JSON-закодированное содержание. В большинстве мест это уже сделано (например, в моделях) и хорошо работает.
Однако при использовании вкладок jQueryUI (http://jqueryui.com/demos/tabs/) и их ajax функциональность, только простой текст HTML может быть возвращен (т.е. из URL, указанных в теги ниже). Как я заставляю функцию вкладки распознавать, что при щелчке каждой вкладки, она будет получать JSON-закодированные данные из указанного URL, и загрузить в .content индексе этого JSON?
$(function() {
$('div#myTabs').tabs();
});
Вы можете использовать параметр dataFilter вызова ajax для преобразования вашего ответа json в html, который вы хотите вставить в панель вкладки.
Что-то вроде этого:
$('#mytabs').tabs({
ajaxOptions: {
dataFilter: function(result){
var data = $.parseJSON(result);
return data.myhtml;
}
},
});
Если бы ваш JSON ответ выглядел так:
{"myhtml":"<h1>hello<\/h1>"}