2012-09-20 14 views
61

含むknockoutjsとid属性を設定します。しかし、私が持っている問題は、buttonidを数字に設定していることです。だから、次のようになります。は、私はこのように、オブジェクトを反復処理するためにKnockoutJSを使用してい接頭

<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属性を指定するとどうやって追加できますか?

答えて

54

Idが観測可能な場合は、「unwrap」する必要があります。'myprefix_' + Id()

20

私はそれが例えば実際、今日これを使用

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

私が見つけた前に私は、私は「$インデックス()」だけでなく、「$インデックス」を使用しなければならなかったことは、少なくとも私の特定のケースでは、upv​​oted。 –

58

$インデックスを使用するのが最善だと思う - 私がしなければならなかった、観察をアンラップする:

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

・ホープ、このことができますし。

0

 <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;"> 
関連する問題