Đặt thuộc tính id với knockoutjs bao gồm tiền tố


76

Tôi đang sử dụng KnockoutJS để lặp qua một đối tượng, như sau:

Bây giờ tất cả đều hoạt động. Nhưng vấn đề tôi gặp phải là nó đặt idsố buttonchỉ thành một số. Vì vậy, nó trông như thế này:

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

Vì vậy, tôi đã cố gắng đặt một tiền tố trước thuộc tính 'Id', như sau:

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

Nhưng điều đó dường như không hiệu quả. Của tôi idđược lấp đầy với một số chức năng quan sát Knockout khi tôi làm như vậy ...

Vì vậy, câu hỏi của tôi là, làm thế nào tôi có thể thêm tiền tố khi tôi chỉ định idthuộc tính của một trường?

Câu trả lời:


57

Nếu Idlà một quan sát được, bạn phải "Unwrap" nó: 'myprefix_' + Id().


68

Thực tế đã sử dụng điều này ngày hôm nay - để mở ra những gì có thể quan sát được, tôi phải làm:

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

Hi vọng điêu nay co ich.


29

Tôi nghĩ tốt nhất nên sử dụng $ index chẳng hạn

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

5
Tôi đã ủng hộ trước khi nhận thấy, ít nhất là trong trường hợp cụ thể của tôi, rằng tôi phải sử dụng "$ index ()", không chỉ "$ 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;">
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.