如何使用ui-select的group by属性显示嵌套对象

时间:2018-05-03 15:46:58

标签: angularjs json ui-select

所以我有一个ui select组件显示一个具有多个属性的对象列表,一个属性是另一个对象,我需要的是显示按嵌套对象中的属性分组的数组对象,看看:{ {3}}。 请我真的需要帮助。提前致谢。 这就是我尝试的原因:

<ui-select-match placeholder="Elija un Nutriente...">           
    {{$select.selected.nombre}}
</ui-select-match>
<ui-select-choices repeat="a in allNutrientes| filter: $select.search" group-by="'idTiposDatosAlimentos.nombreTipoDato'"> 
    <strong>{{a.abreviatura}} </strong>
      {{a.nombre}}
    <small><strong>Tipo de Dato: </strong>
      {{a.idTiposDatosAlimentos.nombreTipoDato}}
    </small>
</ui-select-choices>

1 个答案:

答案 0 :(得分:0)

您正在使用ui select提供的group by string方法。但是,它们也有一个允许您使用函数的示例。您只需向控制器添加一个函数,并将group-by=属性替换为函数名称。这通过将每个项目传递给您的函数来工作,因此该函数应该除了该项目的单个参数。对于您的情况,您只需返回您想要分组的字段中的值。

<强> yourcontroller.js

// the rest of your controller code, left out for brevity
$scope.groupByNombreTipoDato = function (item) {
    // by returning this, it will attach this as the group by key
    // and automatically group your items by this
    return item.idTiposDatosAlimentos.nombreTipoDato;
}

<强> yourhtml.html

// rest left out for brevity
// we are using the function we added to the controller
// we don't include the parameter, it calls it properly with just the name
<ui-select-choices repeat="a in allNutrientes| filter: $select.search" group-by="groupByNombreTipoDato">