有没有更好的方法在angular-datatables中显示嵌套表?我通过使用rowCallback并设置click事件解决了我的问题:
$scope.dtOptions = DTOptionsBuilder.fromSource('data.json')
.withOption('rowCallback', rowCallback)
Run Code Online (Sandbox Code Playgroud)
在一个点击处理程序中,我得到dt-instance并使用数据表实例中的行数据构建html.
function rowCallback(tabRow, data, dataIndex) {
$(tabRow).unbind('click');
$(tabRow).on('click', function () {
console.log('click');
$(this).find('.a1-icon').toggleClass('fa-rotate-180');
var tr = $(tabRow);
var table = $scope.dtInstance.DataTable;
var row = table.row(tr);
if ( row.child.isShown() ) {
// This row is already open - close it
row.child.hide();
tr.removeClass('shown');
}
else {
// Open this row
row.child( format(row.data()) ).show();
tr.addClass('shown');
}
});
}
Run Code Online (Sandbox Code Playgroud)
但感觉有点奇怪,特别是角度.这是Plunker的完整简化代码http://plnkr.co/edit/gVf926obJKTXvXU7fLdA?p=preview
我有一些格式的Redis有很多键,我想获得匹配某些模式的键并对它们进行一些操作.我不使用KEYS方法,因为它不建议在生产中使用.使用SCAN我想知道在代码中编写它的最佳方法是什么.我必须做一些像while循环但使用promises的东西,我现在的解决方案看起来像这样(代码简化了一点):
'use strict'
const Promise = require('bluebird');
const config = require('./config');
const client = require('./clinet');
let iterator = 0;
Promise.coroutine(function* () {
do {
iterator = yield clinet.scanAsync(iterator, 'myQuery', 'COUNT', config.scanChunkSize)
.then(data => {
let nextIterator = data[0];
let values = data[1];
//do some magic with values
return nextIterator;
})
} while (iterator !== '0');
})();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到我错过了?