在HandsonTable Angular指令中使用数组中的数据
Use data from array in HandsonTable Angular directive
我正在尝试使用数组作为使用 Angular 指令创建的 HandsoneTable 中某些列的数据源。但是当使用通用数组表示法(name[0]
)作为数据属性时,该特定表格单元格中不会呈现任何内容。我做错了什么还是不应该按照我想要的方式工作?
我的数据源:
$scope.data = [
{
'name': ['Bob', 'Bobson'],
'email': 'bob@sample.com'
},
{
'name': ['John', 'Johnson'],
'email': 'john@sample.com'
}
];
还有我的模板:
<div ng-app="Test">
<div ng-controller="tableCtrl">
<hot-table datarows="data">
<hot-column data="name[0]"></hot-column>
<hot-column data="name[1]"></hot-column>
<hot-column data="email"></hot-column>
</hot-table>
</div>
</div>
请参阅此处的简单示例:https://jsfiddle.net/9qzo3wnv/4/
从技术上讲,不可能在数据属性上使用数组表示法(name[0]),但您还有其他几个选项来完成某些事情:
解决方案 1
改为将数据转换为对象。
示例:https://jsfiddle.net/4yuv1vyu/
$scope.data = [
{
'name': {0:'Bob',1:'Bobson'},
'email': 'bob@sample.com'
},
{
'name': {0:'John',1: 'Johnson'},
'email': 'john@sample.com'
}
];
解决方案 2
将数组转换为具有控制器中函数的对象:
示例:https://jsfiddle.net/vypahad6/
详细信息:https://stackoverflow.com/a/4215753/3298029
$scope.toObject = function(arr) {
var rv = {};
for (var i = 0; i < arr.length; ++i)
rv[i] = arr[i];
return rv;
}
for (var d in $scope.data) {
$scope.data[d].name = $scope.toObject($scope.data[d].name);
}
解决方案 3
利用可动手的自定义单元格渲染器功能:
示例:https://jsfiddle.net/sbkwcfr5/
详细信息:http://docs.handsontable.com/0.24.1/demo-custom-renderers.html
View:
<hot-column data="name" renderer="customRendererName"></hot-column>
Controller:
$scope.customRendererName = function(instance, td, row, col, prop, value, cellProperties) {
var html = Handsontable.helper.stringify(value[0]);
td.innerHTML = html;
return td;
return value[0];
}
相关文章:
- JSON数组数据返回Undefined
- 具有关联数组数据集的D3.js表
- TinyMCE获取数组数据
- Emberjs#每个循环不处理数组数据
- 使用Angular.js访问php数组数据
- 数组数据排序类似mysql查询
- 在Redux中映射对象数组数据
- jqGrid - 搜索本地数组数据
- 如何在不赋值数组变量的情况下读取数组数据
- 停止 jQuery 自动完成以过滤/搜索结果并填充整个源数组数据
- 如何在 AngularJS 中从 API 访问数组数据
- JQuery - 根据数组数据将 html 表列添加到表的末尾
- 如何将json格式的数组数据从jquery返回到html
- 异步循环使用递归:如何访问推送数组数据
- Node.js对象数组数据联接
- 序列promise链与数组数据,如何解析promise链
- 如何加速getJSON数组数据
- PHP同时循环数组数据显示到javascript中
- 流星:显示数组数据,因为表在添加新列时给出了重复值
- 数组数据不会显示在表中