尝试从 jquery DataTables 中的 jquery 触发器更改 ko.observable 时出现 TypeError 循环对象值
TypeError cyclic object value when trying to change a ko.observable from an jquery trigger inside jquery DataTables
我试图在单击 jquery.DataTables table 行时将 ko.observable 值更改为该行的 ID。
在激活周期中从服务器获取数据后,我在 durandal 的附加函数中实例化了 DataTable。即使没有任何点击逻辑,我也无法在实例化 Datatable.
后更改可观察值
代码如下:
self.attached = function(view, parent) {
self.selectedCategory().schedule_id(1337);
self.dt = $('#reservation_schedule_table').DataTable();
}
工作正常。但是,当我这样写的时候,
self.attached = function(view, parent) {
self.dt = $('#reservation_schedule_table').DataTable();
self.selectedCategory().schedule_id(1337);
}
我收到循环对象错误。
TypeError: cyclic object value
return JSON.stringify(ko.utils.unwrapObservable(data), replacer, space);
knockou...7981312 (line 537, col 19)
谁能告诉我这是为什么以及如何防止这种情况发生?
我想我明白了。因为从模块返回的唯一东西是 viewModel 本身的新实例,所以 DataTable 实例必须与附加函数的视图参数相关。还没有完全理解这是为什么。但我会继续阅读它。
对于初学者,代码应该是这样的:
self.attached = function(view, parent) {
view.dt = $('#reservation_schedule_table').DataTable();
self.selectedCategory().schedule_id(1337);
}
并且在生命周期函数之一中使用数据表的任何地方,它都必须是 view.dt
我试图在单击 jquery.DataTables table 行时将 ko.observable 值更改为该行的 ID。 在激活周期中从服务器获取数据后,我在 durandal 的附加函数中实例化了 DataTable。即使没有任何点击逻辑,我也无法在实例化 Datatable.
后更改可观察值代码如下:
self.attached = function(view, parent) {
self.selectedCategory().schedule_id(1337);
self.dt = $('#reservation_schedule_table').DataTable();
}
工作正常。但是,当我这样写的时候,
self.attached = function(view, parent) {
self.dt = $('#reservation_schedule_table').DataTable();
self.selectedCategory().schedule_id(1337);
}
我收到循环对象错误。
TypeError: cyclic object value
return JSON.stringify(ko.utils.unwrapObservable(data), replacer, space);
knockou...7981312 (line 537, col 19)
谁能告诉我这是为什么以及如何防止这种情况发生?
我想我明白了。因为从模块返回的唯一东西是 viewModel 本身的新实例,所以 DataTable 实例必须与附加函数的视图参数相关。还没有完全理解这是为什么。但我会继续阅读它。 对于初学者,代码应该是这样的:
self.attached = function(view, parent) {
view.dt = $('#reservation_schedule_table').DataTable();
self.selectedCategory().schedule_id(1337);
}
并且在生命周期函数之一中使用数据表的任何地方,它都必须是 view.dt