2012-09-20 19 views
61

मैं KnockoutJS उपयोग कर रहा हूँ एक वस्तु से अधिक पुनरावृति करने के लिए, इस तरह सहित knockoutjs साथ आईडी गुण निर्धारित करना। लेकिन मेरी समस्या यह है कि यह button के id को केवल एक संख्या में सेट करता है। तो यह इस तरह दिखता है:एक उपसर्ग

<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 एक अवलोकन योग्य है, तो आपको इसे "अनचाहे" करना होगा: 'myprefix_' + Id()

20

मुझे लगता है कि यह उदाहरण

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

मैंने पहले मैंने पाया upvoted, कम से कम मेरी विशेष मामले में, यह है कि मैं का इस्तेमाल किया था "$ इंडेक्स()", न सिर्फ "$ सूचकांक"। –

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;">