2015-07-16 17 views
19

Tôi đang sử dụng select2 với mvc mùa xuân. Tôi đã nhận dữ liệu từ bộ điều khiển của mình mà tôi cần hiển thị ở đây về các tùy chọn. Nhưng tôi muốn họ được nhóm lại như optgroup và tôi cũng muốn hình ảnh được gắn trong nó mà có thể được chèn bằng tay như đưa ra dưới đây: -Dữ liệu jquery select2 json với optgroup và hình ảnh

<optgroup label="group"> 
    <option value="imageName">value 1</option> 
    <option value="imageName">value 1</option> 
    </optgroup> 

đâu imageName là tên của hình ảnh. Tôi muốn: 1) Tùy chọn nhóm trong json. 2) Cung cấp thuộc tính hình ảnh này trong json để select2 có thể tạo thành dữ liệu.

Đây là mã:

$("#my-select").select2({ 
     data : [ { 
      id : 0, 
      text : 'enhancement' 
     }, { 
      id : 1, 
      text : 'bug' 
     }, { 
      id : 2, 
      text : 'duplicate' 
     }, { 
      id : 3, 
      text : 'invalid' 
     }, { 
      id : 4, 
      text : 'wontfix' 
     } ] 
    }); 

tôi đang tạo ra json của tôi bằng tay từ đối tượng của tôi. Vì vậy, tôi có thể cung cấp bất kỳ dữ liệu nào ở đây. Bất kỳ đề xuất ?

Trả lời

38

bản đồ Select2 đối tượng dữ liệu để <option><optgroup> thẻ bằng cách sử dụng logic sau


Một đối tượng dữ liệu (những gì được trả lại trong danh sách) mà trông giống như

{ 
    'id': 'value-here', 
    'text': 'text-here' 
} 

sẽ được ánh xạ tới một <option> trông giống như

<option value="value-here">text-here</option> 

Một đối tượng dữ liệu mà trông giống như

{ 
    'text': 'label-here', 
    'children': [data_object, data_object] 
} 

sẽ được ánh xạ vào một <optgroup> trông giống như

<optgroup label="label-here"> 
    <!-- HTML for the `children` --> 
</optgroup> 

Vì vậy, các đối tượng dữ liệu mà bạn đang tìm kiếm để trở lại là

{ 
    'text': 'group', 
    'children': [ 
    { 
     'id': 'imageName', 
     'text': 'value 1' 
    }, 
    { 
     'id': 'imageName', 
     'text': 'value 1' 
    } 
    ] 
} 
+0

Có quảng cáo nào không rty đó ánh xạ tới lớp CSS? – Chalky

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