Проверьте, какие атрибуты были назначены компоненту в Emberjs

Я написал компонент для отображения модального диалога выбора.

{{m-modal-select value=valList valuePool=possibleValueList}}

Это многофункциональный компонент, valuePool список кандидатов, value это выбранный список. Теперь я хочу поддерживать как multi-select, так и single-select внутри этого компонента, когда это одиночный режим, код должен выглядеть следующим образом:

{{m-modal-select singleValue=selectedOne valuePool=possibleValueList}}

Мне бы хотелось, чтобы сам компонент мог распознавать, находится ли он в одиночном или множественном режиме, наблюдая, какой атрибут (значение или однозначное значение) ему назначен.

Я не знаю, как добиться этого в компоненте JS.

Кроме того, мне также интересно, есть ли функция для получения имен всех назначенных атрибутов в компоненте. Для двух приведенных выше примеров это будет выглядеть так:

this.get('assignedAttrNames');  

//the first one 
// ['value', 'valuePool']

//the second one
// ['singleValue', 'valuePool']

1 ответ

this.get('attrs') даст объект с атрибутами, которые вы передали компоненту.

Чтобы проверить, одиночный выбор или множественный выбор

//component.js
if(this.get('singleValue')){ 
  //single select code 
}else{
  //multi select code
}

//component.hbs (only if you need so)
{{#if singleValue}}
single select code
{{else}}
multi select code
{{/if}}
Другие вопросы по тегам