2011-08-09 34 views
11

Mẫu {{}} mỗi chỉ thị hoạt động tuyệt vời cho iterating trên một mảng như thế này:Tôi có thể làm một jquery-tmpl từng qua thuộc tính đối tượng

var myArray = ["a","b","c"]; 

Tôi đang tự hỏi nếu có một tương đương cho iterating đối với tài sản đối tượng, ví dụ:

var myObj = {"propOne": "a", "propTwo": "b", "propThree": "c"}; 

tôi muốn một mẫu mà sẽ cho phép tôi đầu ra như

<ul> 
    <li><span>propOne</span><span>a</span></li> 
    .... etc 

Đối với điểm thưởng tôi muốn sử dụng mẫu này từ KnockoutJS.

Trả lời

11

Thực tế {{each}} sẽ đi qua các thuộc tính trên một đối tượng. Bạn có thể làm một cái gì đó như thế này:

{{each(prop, val) myObj}} 
     <li><span>${prop}</span> - <span>${val}</span></li> 
{{/each}} 

Đây là một mẫu trong Knockout: http://jsfiddle.net/rniemeyer/rpMsM/

Nếu bạn thực sự muốn sử dụng foreach tùy chọn của mẫu ràng buộc, sau đó lựa chọn duy nhất là để ánh xạ các đối tượng cho một mảng đối tượng có thuộc tính khóa/giá trị. Một cái gì đó như thế này: http://jsfiddle.net/rniemeyer/rpMsM/1/

+0

Ham chơi lên, đó là quả bom! =) –

7

Bạn cũng có thể sử dụng này

{{each myObj}} 
     <li><span>${$index}</span> - <span>${$value}</span></li> 
{{/each}} 
+0

Cần xóa một biểu tượng trong biến "$". 'Từ $ {$ index} đến $ {index}' Nó đã giúp ích cho tôi. –

Các vấn đề liên quan