我正在尝试将示例-6(远程数据)和示例9(重新排序)组合在一起。 我写了下面的代码,但我得到了#34; TypeError:data.slice不是一个函数"。能帮我解决这个问题吗?我的代码如下。
example6-ajax-loading html example9-row-reordering html
var loader = new Slick.Data.RemoteModel(); /* REMOTE DATA USE */
data=data.loader; /* DRAG & DROP USE */
完整的代码。的jsfiddle
谢谢
答案 0 :(得分:0)
Slick.Data.RemoteModel
将data
公开为具有length
属性和行索引作为键的对象,它类似于数组,但没有来自Array.prototype
的方法,如{ {1}}。
请参阅:https://github.com/mleibman/SlickGrid/blob/master/slick.remotemodel.js#L10
一种选择是在使用slice
等方法之前将loader.data
复制为数组。因为它具有长度属性和键作为数字,所以slice
Array.prototype.slice.call()
另一个选择是扩展moveRowsPlugin.onMoveRows.subscribe(function (e, args) {
var extractedRows = [],
left,
right;
var rows = args.rows;
var insertBefore = args.insertBefore;
var dataAsArray = Array.prototype.slice.call(loader.data);
left = dataAsArray.slice(0, insertBefore);
right = dataAsArray.slice(insertBefore, dataAsArray.length);
// ...
});
以提供将行移动到索引的实用程序方法。