AngularJS templates 递归循环

摘要:使用 ng-include 进行递归循环;在指令内,可以使用这样的结构;可以使用 ng-init 重命名子级变量名称

使用 ng-include 进行递归循环


数据结构

$scope.categories = [
  { 
    title: 'Computers',
    categories: [
      {
        title: 'Laptops',
        categories: [
          {
            title: 'Ultrabooks'
          },
          {
            title: 'Macbooks'            
          }
        ]
      },
      {
        title: 'Desktops'
      },
      {
        title: 'Tablets',
        categories: [
          { 
            title: 'Apple'
          },
          {
            title: 'Android'
          }
        ]        
      }
    ]
  },
  {
    title: 'Printers'
  }
];


使用例子,注意子级变量名称一致

在指令内,可以使用这样的结构

<div>
	<ul>
    	<li ng-repeat="category in categories">{{ category.title }}</li>
	</ul>
	<script type="text/ng-template" id="categoryTree">
		{{ category.title }}
		<ul ng-if="category.categories">
			<li ng-repeat="category in category.categories" ng-include="'categoryTree'">           
			</li>
		</ul>
	</script>
</div>


可以使用 ng-init 重命名子级变量名称

<li ng-repeat="parentCategory in categories" 
    ng-include="'categoryTree'" 
    ng-init="category=parentCategory">
</li> 


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_8660