2013-03-13 52 views
7

Khi gỡ lỗi bằng Chrome, tôi có thể thấy CoverPrices có 9 phần tử. Vòng lặp foreach thực sự hoạt động tốt và bảng trông chính xác với khoảng đầu tiên bị ràng buộc với Item1 một cách chính xác.loại bỏ "nếu ràng buộc" không hoạt động

Tuy nhiên, nếu liên kết không hoạt động và cả hai hình ảnh sẽ được hiển thị. Tuy nhiên, tất cả các phần tử trong Item2 đều có giá trị đích thực, vì vậy chỉ có hình ảnh đầu tiên mới xuất hiện.

<!-- ko foreach: CoverPrices --> 
    <tr> 
     <td> 
      <span data-bind="text: Item1"></span> 
     </td> 
     <!-- ko foreach: Item2 --> 
     <td> 
      <img src="~/Images/yes.png" alt="oui" data-bind="if: $data" /> 
      <img src="~/Images/no.png" alt="non" data-bind="ifnot: $data" /> 
     </td> 
     <!-- /ko --> 
    </tr> 
    <!-- /ko --> 

Có vấn đề gì với sự ràng buộc của tôi không?

+0

Bạn có thể đăng bộ sưu tập 'Item2' của mình như thế nào không? – nemesv

Trả lời

24

if-binding không ảnh hưởng đến toàn bộ phần tử, nhưng nội dung của nó là . Và bởi vì một phần tử img không có nội dung, sự ràng buộc không quan trọng.

này sẽ làm việc, với span như các yếu tố container:

<span data-bind="if: $data"><img src="~/Images/yes.png" alt="oui" /></span> 
<span data-bind="ifnot: $data"><img src="~/Images/no.png" alt="non" /></span> 

Ngoài ra còn có một container-less syntax, nếu bạn không muốn các yếu tố bổ sung:

<!-- ko if: $data --> 
    <img src="~/Images/yes.png" alt="oui" /> 
<!-- /ko --> 
<!-- ko ifnot: $data --> 
    <img src="~/Images/no.png" alt="non" /> 
<!-- /ko --> 
+2

Hoặc sử dụng liên kết hiển thị thay thế? –

+0

@PaulManzotti điểm hợp lệ, trong mã này không có lý do để sử dụng "nếu" bởi vì không có ràng buộc nào khác có liên quan. –

+0

@fab cảm ơn lời giải thích, điều đó có ý nghĩa. Tôi đã kết thúc bằng cách sử dụng ràng buộc có thể nhìn thấy vì nó có vẻ thích hợp hơn trong trường hợp này thực sự – Sam

0

hình ảnh không liên kết với DOM , nhưng hình ảnh đang tải. Bạn có thể kiểm tra Lưu lượng truy cập mạng. Không nên tải khi nào liên kết được sử dụng