Установка атрибута id с помощью knockoutjs, включая префикс

Я использую KnockoutJS для итерации по объекту, например:

  

Теперь все это работает. Но проблема заключается в том, что он устанавливает id для button только число. Итак, это выглядит так:

<button id="1">Button 1</button>
<button id="3">Button 2</button>
<button id="8">Button 3</button>

Итак, я попытался установить префикс перед свойством Id, например:

<div data-bind="foreach:Items">
    <button data-bind="text: Name, attr: {'id': 'myprefix_' + Id}"></button>
</div>

Но это, похоже, не работает. Мой id заполняется некоторой наблюдаемой функцией Knockout, когда я делаю это так...

Итак, мой вопрос: как я могу добавить префикс, когда я указываю атрибут id поля?

Ответ 1

Если Id является наблюдаемым, вы должны "развернуть" его: 'myprefix_' + Id().

Ответ 2

Фактически это использовалось сегодня - чтобы развернуть наблюдаемые мне пришлось:

<button data-bind="attr: { id: 'prefix_' + $index() }"> Send </button>

Надеюсь, что это поможет.

Ответ 3

Я думаю, что лучше всего использовать индекс $index

<div data-bind="foreach:Items">
    <button data-bind="text: Name, attr: {id: 'myprefix_' + $index() }"></button>
</div>

Ответ 4

       <img data-bind="event: {click: $root.afficherDetailmembreFamille}" src="ucc/gestion_Famille/images/arbre-fleche-off.png" />

          <label data-bind=" text: nom"></label>
          <label data-bind=" text: prenom, click: $root.afficherDetailmembreFamille"></label>
  <br>

   <div data-bind="attr: {'id': 'DivMembreFamille'+id}" style="margin-left: 40px; display: none;">