在angularJS中使用group by时遇到问题

时间:2014-02-18 13:56:44

标签: javascript html angularjs

所以我有这个选择窗口,我想通过2个对象数组进行分组。我有子类别和rootcategory对象。子类别具有用于链接到rootcategory的id的关系id。我想要的是下拉窗口按子类别名称对子类别进行分组。截至目前,我只是通过不同的关系ID来分组。根本不使用rootcategory。有什么建议吗?

来自html页面;

<div ng-controller="categoryController">
    <select ng-model="$parent.subCategoryObject" data-ng-options="subCategories.subCategory group by subCategories.relation for subCategories in subCategories">
        <option value="">Velg en kategori</option>
    </select>
</div>

来自controller.js

wikiControllers.controller('categoryController', ['$scope', 'categoryService',
function($scope, categoryService){
  categoryService.getCategories().then(function(data){
    $scope.rootCategories = data[0];
    $scope.subCategories = data[1];
    $scope.titles = data[2];
    console.log($scope.titles);
  });

}]);

1 个答案:

答案 0 :(得分:2)

您可以向$scope添加一个函数,该函数按id检索根类别的名称,然后在group by中使用该函数。

例如:

$scope.getRootCategoryName = function (id) {      
  return $scope.rootCategories.filter(function (category) {
    return category.Id === id;
  })[0].Name;
};

data-ng-options="subCategories.subCategory group by getRootCategoryName(subCategories.relation) for subCategories in subCategories"

演示:http://plnkr.co/edit/rors7R55Z5fLE8DY0ja1?p=preview