动态创建ng-grid

时间:2014-07-11 09:02:46

标签: javascript angularjs ng-grid

我在动态创建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

的傻瓜

1 个答案:

答案 0 :(得分:0)

我在[{3}}上就您的问题分享了答案。

基本上,数据引用变量,你不存储它。 您可以做的是在每个循环上引用一个新变量,如github

所示

声明索引:

var index = 0;

使用子文档的索引声明字符串:

var dirtyConcat = 'dataSparqlResponses['+index+'].data';

不要忘记增加索引:

++index;

然后,你引用它。

data: dirtyConcat,