如何在角度ui树中动态增加父行

时间:2017-08-07 04:53:28

标签: javascript angularjs

Plunker.

在这个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: []
      });
    };

像这样我想增加当前对象并推入items [] array.so当前对象将在父对象下。

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

1 个答案:

答案 0 :(得分:4)

好了,现在只用

更新你的addParentRow函数
 $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);
  }
}

以下是Plunker