可动态 - 功能未定义
Dynatable - features is undefined
我使用 dynatable 创建了 table。但我得到错误:
TypeError: dyna.features is undefined
$(document).ready(function () {
gettableupdates();
var dyna;
function gettableupdates() {
$.getJSON('ajax_data.json',
function (data) {
dyna = $('#product-table').dynatable({
dataset: {
records: data
}
}).data('dynatable');
dyna.features.paginate.recordCount = false;
dyna.features.paginate.perPageSelect = false;
});
}
});
动态变量的console.log
显示如下:
{
$element: [table#dyno-table, context: table#dyno-table]
dom: Dom {update: ƒ}
domColumns:DomColumns {initOnLoad: ƒ, init: ƒ, getFromTable: ƒ, add: ƒ, remove: ƒ, …}
element : table#dyno-table
inputsSearch : InputsSearch {initOnLoad: ƒ, init: ƒ, create: ƒ, attach: ƒ}
paginationLinks : PaginationLinks {initOnLoad: ƒ, init: ƒ, create: ƒ, buildLink: ƒ, attach: ƒ}
paginationPage : PaginationPage {initOnLoad: ƒ, init: ƒ, set: ƒ}
paginationPerPage : PaginationPerPage {initOnLoad: ƒ, init: ƒ, create: ƒ, attach: ƒ, set: ƒ}
processingIndicator : ProcessingIndicator {init: ƒ, create: ƒ, position: ƒ, attach: ƒ, show: ƒ, …}
queries : Queries {initOnLoad: ƒ, init: ƒ, add: ƒ, remove: ƒ, run: ƒ, …}
records : Records {initOnLoad: ƒ, init: ƒ, updateFromJson: ƒ, sort: ƒ, paginate: ƒ, …}
recordsCount : RecordsCount {initOnLoad: ƒ, init: ƒ, create: ƒ, attach: ƒ}
settings : {features: {…}, table: {…}, inputs: {…}, dataset: {…}, writers: {…}, …}
sorts : Sorts {initOnLoad: ƒ, init: ƒ, add: ƒ, remove: ƒ, clear: ƒ, …}
sortsHeaders : SortsHeaders {initOnLoad: ƒ, init: ƒ, create: ƒ, removeAll: ƒ, removeOne: ƒ, …}
state : State {initOnLoad: ƒ, init: ƒ, push: ƒ, pop: ƒ}
__proto__ : Object
}
这是 Chrome 开发工具中的输出,格式很好地显示了对象键名是什么。如您所见,无法通过顶级对象直接访问 features
。但是,它在设置中。
所以dyna.features
未定义
但是
dyna.settings.features
是一个可能是您正在寻找的对象。
因此您只需更改以下行:
dyna.features.paginate.recordCount = false;
dyna.features.paginate.perPageSelect = false;
至
dyna.settings.features.paginate.recordCount = false;
dyna.settings.features.paginate.perPageSelect = false;
更新
实际上,我不确定您要做什么,但上面的示例可以防止错误发生,但可能无法为您带来预期的结果。如果您的意图是禁用分页和记录计数,那么它将不起作用。您必须在初始化时定义这些功能。您可以通过添加具有某些属性的功能对象来做到这一点,如下所示:
// ...previous code
dyna = $('#product-table').dynatable({
dataset: {
records: data
},
features: {
recordCount: false,
perPageSelect: false,
}
}).data('dynatable');
//... after code
我使用 dynatable 创建了 table。但我得到错误:
TypeError: dyna.features is undefined
$(document).ready(function () {
gettableupdates();
var dyna;
function gettableupdates() {
$.getJSON('ajax_data.json',
function (data) {
dyna = $('#product-table').dynatable({
dataset: {
records: data
}
}).data('dynatable');
dyna.features.paginate.recordCount = false;
dyna.features.paginate.perPageSelect = false;
});
}
});
动态变量的console.log
显示如下:
{
$element: [table#dyno-table, context: table#dyno-table]
dom: Dom {update: ƒ}
domColumns:DomColumns {initOnLoad: ƒ, init: ƒ, getFromTable: ƒ, add: ƒ, remove: ƒ, …}
element : table#dyno-table
inputsSearch : InputsSearch {initOnLoad: ƒ, init: ƒ, create: ƒ, attach: ƒ}
paginationLinks : PaginationLinks {initOnLoad: ƒ, init: ƒ, create: ƒ, buildLink: ƒ, attach: ƒ}
paginationPage : PaginationPage {initOnLoad: ƒ, init: ƒ, set: ƒ}
paginationPerPage : PaginationPerPage {initOnLoad: ƒ, init: ƒ, create: ƒ, attach: ƒ, set: ƒ}
processingIndicator : ProcessingIndicator {init: ƒ, create: ƒ, position: ƒ, attach: ƒ, show: ƒ, …}
queries : Queries {initOnLoad: ƒ, init: ƒ, add: ƒ, remove: ƒ, run: ƒ, …}
records : Records {initOnLoad: ƒ, init: ƒ, updateFromJson: ƒ, sort: ƒ, paginate: ƒ, …}
recordsCount : RecordsCount {initOnLoad: ƒ, init: ƒ, create: ƒ, attach: ƒ}
settings : {features: {…}, table: {…}, inputs: {…}, dataset: {…}, writers: {…}, …}
sorts : Sorts {initOnLoad: ƒ, init: ƒ, add: ƒ, remove: ƒ, clear: ƒ, …}
sortsHeaders : SortsHeaders {initOnLoad: ƒ, init: ƒ, create: ƒ, removeAll: ƒ, removeOne: ƒ, …}
state : State {initOnLoad: ƒ, init: ƒ, push: ƒ, pop: ƒ}
__proto__ : Object
}
这是 Chrome 开发工具中的输出,格式很好地显示了对象键名是什么。如您所见,无法通过顶级对象直接访问 features
。但是,它在设置中。
所以dyna.features
未定义
但是
dyna.settings.features
是一个可能是您正在寻找的对象。
因此您只需更改以下行:
dyna.features.paginate.recordCount = false;
dyna.features.paginate.perPageSelect = false;
至
dyna.settings.features.paginate.recordCount = false;
dyna.settings.features.paginate.perPageSelect = false;
更新
实际上,我不确定您要做什么,但上面的示例可以防止错误发生,但可能无法为您带来预期的结果。如果您的意图是禁用分页和记录计数,那么它将不起作用。您必须在初始化时定义这些功能。您可以通过添加具有某些属性的功能对象来做到这一点,如下所示:
// ...previous code
dyna = $('#product-table').dynatable({
dataset: {
records: data
},
features: {
recordCount: false,
perPageSelect: false,
}
}).data('dynatable');
//... after code