如何使用AngularJS将树结构绑定到accordion或list(li)

时间:2016-12-16 04:52:21

标签: angularjs asp.net-mvc

如何使用角度将树结构绑定到手风琴。树结构就像父母和孩子。怎么弄这个?能够绑定完整列表。

角度代码:

 $scope.groups = [
      {
          ID: 1,
          Name: "parent",
          ParentID:0
      },
      {
          ID: 2,
          Name: "child",
          ParentID: 1

      },
      {
          ID: 3,
          Name: "subchild1",
          ParentID: 2

      },
       {
          ID: 4,
          Name: "subchild2",
          ParentID: 2

      }
    ];

视图: 我试图将树绑定到手风琴但没有得到,

<uib-accordion close-others="oneAtATime">
    <div uib-accordion-group class="panel-default" ng-repeat="grp in groups" is-open="status.open">
        <uib-accordion-heading>
            {{grp.Name}}  <i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.open, 'glyphicon-chevron-right': !status.open}"></i>
        </uib-accordion-heading>
        {{grp.Name}}
    </div>
</uib-accordion>

是否有任何选项以手风琴但使用角度

以其他方式绑定树

1 个答案:

答案 0 :(得分:0)

当然有一种方法可以在AngularJS中绑定到这棵树!对我来说,这似乎是ngRepeat的一个很好的用例!试试这个:

<div ng-repeat="(key, value) in groups"

  <h1> {{value.ID}} </h1>
  <h2> {{value.Name}} </h2>
  <h3> {{value.ParentID}} </h3>

</div>

如果您希望面板展开,那么我会为每个对象添加另一个属性, isExpanded (或任何您想要调用的对象)。然后,您可以使用ngIf隐藏/显示展开的内容,如下所示:

<div ng-repeat="(key, value) in groups"

  <h1> {{value.ID}} </h1>
  <h2> {{value.Name}} </h2>
  <h3> {{value.ParentID}} </h3>

  <div ng-if="value.isExpanded === true">
    <h3> Expanded content </h3>
  </div>

</div>

你也可以使用漂亮的动画过渡来扩展和关闭div ngAnimate

您还可以查看Angular UI-Bootstrap Accordian或 (这里是它的代码示例:http://codepen.io/funkybudda/pen/vEbgVv

以下是AngularJS手风琴的一个例子:http://embed.plnkr.co/3y0Rq1/

祝你好运!