#jquery #datatables
#jquery #таблицы данных
Вопрос:
Я использую DataTable, который я инициировал с помощью,
var datatable = $('#datatble').DataTable({
... (Some stuff around there)
oLanguage: {
sSearch: '_INPUT_'
lengthMenu: '_MENU_',
},
language: {},
sDom: '',
});
Мой вопрос в том, почему существует префикс для таких свойств, как sDom, oLanguage, sSearch
?
Без language: {},
свойства lengthMenu это не сработало. Без префикса это соответствующее свойство не работало.
Пожалуйста, объясните мне, почему это происходит?
Что это такое prefix
имеется в виду?
Ответ №1:
Они определяют тип переменных, к которым они относятся. s
является строкой, b
является логическим значением, o
является объектом и т.д. Он называется венгерской нотацией и указан на их странице часто задаваемых вопросов
Ответ №2:
DataTables имеет два стандарта именования:
- старые имена венгерских обозначений (для версий до 1.10)
- более новые имена camelCase (начиная с 1.10)
Если вы используете последнюю версию таблиц данных (начиная с версии 1.10 и далее), вы можете использовать либо новый стандарт именования, либо старый.
В официальной документации есть страница, которая документирует сопоставление между двумя стандартами именования.
Новый API 1.10 больше, чем старый (до 1.10) API, поэтому в некоторых случаях нет более старого эквивалента в венгерском стиле для новых имен camelCase.
Рассматривая один из примеров в вашем вопросе:
oLanguage: {
sSearch: '_INPUT_',
lengthMenu: '_MENU_',
}
Нет такого свойства, как oLanguage.lengthMenu
— оно должно быть:
sLengthMenu
если вы используетеoLanguage
(старый стиль)lengthMenu
если вы используетеlanguage
(новый стиль)
Я бы рекомендовал использовать новые имена везде, где это возможно, особенно в новых проектах. Опция венгерской нотации устарела и будет удалена в будущих версиях. Но вы увидите старые имена, используемые во многих старых примерах и руководствах.