0

我有一个想要在下拉框中显示的“Candidato”列表。这是一个候选人的例子:

{"id": 3, "nombre": "Ivonne Álvarez Garcia", "sexo": 0, "confirmado": true}

这是另一个:

{"id": 1, "nombre": "Margarita Arellanes Cervantes", "sexo": 0, "confirmado": false},

在我的模板中,我有这个:

{{view "select" content=model.candidatosPAN optionValuePath="content.id" optionLabelPath="content.nombre" selection=newParams.candidatoPAN}}<br/>

问题是我希望“选项标签”是可变的,具体取决于名词和确认。因此,例如,Ivonne 的选项将显示为“Ivonne Álvarez Garcia (*)”……因为她是“confirmado”。另一方面,玛格丽塔的选择是:“玛格丽塔·阿雷拉内斯·塞万提斯”,因为她不是“确认者”。

最简单和最简单的方法是什么?

谢谢!

4

1 回答 1

1

一种解决方案是将内容包装在定义标签的控制器中某处的列表属性中,例如:

// in your controller
candidatos: Ember.computed.map('candidatosPAN', function(candidato) {
    var suffix = candidato.get('confirmado') ? ' (*)' : '';
    return {
        id: candidato.get('id'),
        label: candidato.get('nombre') + suffix
    };
});

// in your template
{{view "select" content=candidatos optionValuePath="content.id" optionLabelPath="content.label"}}

selection您可以使用属性而不是value属性来将选择与候选人的 id 绑定。因此,您现在无需选择候选人,而是选择候选人 ID。

于 2015-02-06T20:29:27.483 回答