Встановлення атрибута id за допомогою knockoutjs, включаючи префікс


76

Я використовую 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Коли я роблю це так, мене наповнює якась функція, яка спостерігається у нокауті ...

Отже, моє запитання полягає в тому, як я можу додати префікс, коли я вказую idатрибут поля?

Відповіді:



68

Насправді використовував це сьогодні - для розгортання спостережуваного я повинен був зробити:

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

Сподіваюся, це допомагає.


29

Я думаю, що найкраще використовувати індекс $, наприклад

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

5
Я проголосував перед тим, як виявив, принаймні в моєму конкретному випадку, що мені довелося використовувати "$ index ()", а не просто "$ Index".
Mark Meuer

-1

       <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;">
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.