使用动态变量填充ng-repeat中的数据

时间:2014-08-05 12:48:34

标签: javascript angularjs

我有一个列表,我通过ng-repeat填充,在该列表中我有一个嵌套列表,每个列表上都有一个按钮。现在点击那个ul我想从服务器加载可以是动态的列表。目前它正在覆盖该领域。这是我的代码。

<ul class="qtree">
  <li ng-repeat="Childgroup in childGroups">
    <span class="glyphicon glyphicon-remove del-btn-tree" data-ng-click="deleteChildGroup(Childgroup.id)" ></span>
    <label for="test1">{{Childgroup.name}}</label>                         
    <input type="checkbox" id="{{Childgroup.id}}" data-ng-click="getEntities(Childgroup.id)" />
    <ul>
       <li ng-repeat="entity in entites">
         {{entity.name}}
       </li>
    </ul>
  </li>
</ul>

JavaScript的:

$scope.getEntities = function(groupID) {

$scope.entites = [];
var entitiesGroup = ManageGroupsFactory.getEntitiesForGroup(groupID);
entitiesGroup.success(function(entitiesGroup) {
  if(entitiesGroup != "") {                 
    for(var i=0; i<entitiesGroup.length;i++) {
        $scope.entites.push(entitiesGroup[0]);
    }
  }
});

entitiesGroup.error(function(data,status){
     // TODO for errors
});

第一个列表通过ng-repeat填充。现在我想要的是点击复选框,它从服务器加载它的特定实体并填充其中,每个复选框都有不同的内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

一种很有可能工作的技术是为子列表中的每个元素生成唯一的id。您应该能够组合父列表名称+内部循环的某个值以生成唯一ID,例如:

<li ng-repeat="entity in entites track by $id(Childgroup.id + entity.name)">
     {{entity.name}}
</li>

让我知道这对你有用。