2017-08-07 66 views
4

Plunker.如何动态地增加父行的角度UI树

在这种plunker我一直保持着++++用于递增父行和用于递增子行的++

这里++正在递增正确。和'+'也正确递增,如果我点击++,那么它会为父项添加一个子行。

然后,如果我点击+按钮,它应该为父项添加另一个子行。但它增加了另一个主要行。

在这里,我得到了这个关键字在html中的关键行。像那样,我怎样才能获得我们点击过的子行的父对象。

ng-click="newSubItem(this)"//here This keyword will give the current object. 

控制器: -

$scope.newSubItem = function(scope) { 
     var nodeData = scope.$modelValue; 
     nodeData.items.push({ 
     id: nodeData.id * 10 + nodeData.items.length, 
     rowId: nodeData.rowId + '.' + (nodeData.items.length + 1), 
     items: [] 
     }); 
    }; 

喜欢我想增加当前对象,并推入项目[] array.so当前的对象将涉及下父对象。

最后如何获取当前对象的父对象。

+0

你的问题是有点含糊,你应该添加+按钮仅用于主行,然后+按钮在树中应该添加一个孩子在该父母 –

+0

让我添加一个答案,如果它不符合您的要求然后让我知道 –

回答

4

确定现在这个只有

$scope.addParentRow = function(scope) { 

    if (scope.$nodeScope.$parentNodeScope) { 
    var nodeData = scope.$nodeScope.$parentNodeScope.$modelValue 
    nodeData.items.push({ 
     id: nodeData.id * 10 + nodeData.items.length, 
     rowId: nodeData.rowId + '.' + (nodeData.items.length + 1), 
     items: [] 
    }); 
    } else { 
    var lastObj = $scope.list[$scope.list.length - 1]; 
    var rowItem = { 
     "id": parseFloat(lastObj.id) + 1, 
     "rowId": parseFloat(lastObj.rowId) + 1, 
     "items": [] 
    } 
    $scope.list.push(rowItem); 
    } 
} 

这里更新您的addParentRow功能是Plunker

+0

https://stackoverflow.com/questions/45544608/angular-ui-tree-incrementing-正在复制 – Murali

+0

ok le我检查一下 –

+0

你有没有发现问题 – Murali