2013-10-08 14 views
7

您好我正在從我的Ajax調用中取回一個JSON編碼的數組(「html」),我希望在選擇時添加值和文本(我正在使用標記)。 我該怎麼做?selectize js使用數組作爲源

HTML

<input type="text" value="test" class="demo-default selectized" id="input-tags" tabindex="-1" style="display: block;"> 

JQUERY

try { 
    data = $.parseJSON(html); 
var obj = jQuery.parseJSON(html); 

outcome = (obj.outcome); 

$('#input-tags').selectize({ 
      delimiter: ',', 
      persist: false, 
      maxItems: 1, 
      create: function (input) { 
       return { 
        value: input, 
        text: input 
       } 
      } 
     }); 

}

回答

11

您可以在陣列映射到對象的數組,像這樣:

data = $.parseJSON(html); 
var items = data.map(function(x) { return { item: x }; }); 

然後用"labelField" and "valueField"來指定文/值:

$('#input-tags').selectize({ 
     delimiter: ',', 
     persist: false, 
     options: items, 
     labelField: "item", 
     valueField: "item" 
    }); 

Fiddle Demo.

+0

優雅oneliner – Kirby

+0

僅供參考,您可能需要添加'searchField:「項目'],之後。 –

1

隨着ES6可以減少你oneliner有點

const items = data.map(item => ({item}));