74 votes

Définition de l'attribut id avec knockoutjs incluant un préfixe

J'utilise KnockoutJS pour itérer sur un objet, comme ceci :

Maintenant, tout cela fonctionne. Mais le problème que j'ai, c'est qu'il fixe le paramètre id de la button à un simple numéro. Donc ça ressemble à ça :

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

J'ai donc essayé de mettre un préfixe devant la propriété 'Id', comme ceci :

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

Mais ça n'a pas l'air de fonctionner. Mon id se remplit avec une fonction observable de Knockout quand je fais comme ça...

Ma question est donc la suivante : comment puis-je ajouter un préfixe lorsque je spécifie l'adresse IP de l'utilisateur ? id d'un champ ?

67voto

Cordell Lawrence Points 231

Je m'en suis servi aujourd'hui, pour déballer l'observable que je devais faire :

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

J'espère que cela vous aidera.

55voto

Michael Best Points 9033

Si Id est une observable, vous devez la "déballer" : 'myprefix_' + Id() .

27voto

code5 Points 693

Je pense que c'est mieux d'utiliser le $index par exemple

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X