问题描述
我正在使用一个我已经启动的数据表,
var datatable = $('#datatble').DataTable({
... (Some stuff around there)
oLanguage: {
sSearch: '_INPUT_'
lengthMenu: '_MENU_',},language: {},sDom: '',});
我的问题是为什么像 sDom,oLanguage,sSearch
这样的属性有前缀?
如果没有 language: {},
,lengthMenu 属性不起作用。没有前缀,相应的属性不起作用。
请解释一下,为什么会这样?
那些 prefix
是什么意思?
解决方法
这些指定了它们的变量类型。 s
是字符串,b
是布尔值,o
是一个对象等等。它被称为 Hungarian Notation 并在它们的 FAQ 页面上指定
DataTables 有两个命名标准:
- 较旧的匈牙利符号名称(适用于 1.10 之前的版本)
- 新的驼峰命名法(从 1.10 开始)
如果您使用的是最新版本的 DataTables(从 1.10 版开始),您可以使用 new naming standard or the old one。
官方文档中有一页documents the mapping介于两种命名标准之间。
新的 1.10+ API 比旧的(1.10 之前的)API 大,因此在某些情况下,新的驼峰命名法没有旧的匈牙利风格等效项。
查看您问题中的示例之一:
oLanguage: {
sSearch: '_INPUT_',lengthMenu: '_MENU_',}
没有像 oLanguage.lengthMenu
这样的属性 - 它必须是:
-
sLengthMenu
如果您使用的是oLanguage
(旧样式) -
lengthMenu
如果您使用的是language
(新样式)
我建议尽可能使用新名称 - 特别是在新项目中。匈牙利表示法选项已弃用,将在未来版本中移除。但是您会看到许多旧示例和教程使用的旧名称。