我在动态创建ng-grid时遇到问题:
下一个函数循环遍历$ scope.dataSparqlResponses的每个元素(每个元素是一个数据数组),并将迭代的值放在$ scope.dataSparqlAux中。 $ scope.dataSparqlAux 是网格中使用的变量(数据输入)。问题是在每次迭代中都会重新分配这个变量($ scope.dataSparqlAux),所以在模板中我只能看到最后一个带数据的网格。
**controller.js**
$scope.crearGrids = function() {
angular.forEach($scope.dataSparqlResponses, function(elem) {
$scope.dataSparqlAux = elem.data;
$scope.dataGrids.push({grid: {
data: 'dataSparqlAux',
enablePinning: false,
showFooter: true,
selectedItems: [],
i18n: 'es',
showSelectionCheckbox: true,
afterSelectionChange: function() {
console.log(this);
},
columnDefs: [{field: elem.nombre + '.value', displayName: elem.nombre, cellTemplate: templateWithTooltip}]
}});
console.log($scope.dataGrids);
});
};
**template.html**
<div data-get-width data-num-elementos="{{dataGrids.length}}" >
<div ng-repeat="dataGrid in dataGrids">
<div class="tabla_det" ng-grid="dataGrid.grid"></div>
</div>
</div>
可以做这样的事吗?
$scope.dataGrids.push({grid: {
**data: 'dataSparqlResponses[cont]',**
enablePinning: false,
showFooter: true,
selectedItems: [],
i18n: 'es',
showSelectionCheckbox: true,
afterSelectionChange: function() {
console.log(this);
},
columnDefs: [{field: elem.nombre + '.value', displayName: elem.nombre, cellTemplate: templateWithTooltip}]
}});
console.log($scope.dataGrids);
如何修复此问题以动态创建网格和显示信息?
问候并感谢您的时间。
编辑:这里有一个问题http://plnkr.co/edit/zYtuMW4TKW053YoDY0kg?p=preview
的傻瓜答案 0 :(得分:0)
我在[{3}}上就您的问题分享了答案。
基本上,数据引用变量,你不存储它。 您可以做的是在每个循环上引用一个新变量,如github。
所示声明索引:
var index = 0;
使用子文档的索引声明字符串:
var dirtyConcat = 'dataSparqlResponses['+index+'].data';
不要忘记增加索引:
++index;
然后,你引用它。
data: dirtyConcat,