0

我在Laravel應用程序中使用Material Design Tags初始化材料設計引導程序標記

<div class="chips chips-placeholder chips-initial"></div> 

我想與存儲在數據庫中的值初始化此芯片的元素:

["kingfisher", "art"] 

而在刀片我得到$art->keywords如下:

array:1 [▼ 
    0 => "art" 
] 

我如何分配這個值低於jQuery代碼?

$('.chips-initial').material_chip({ 
    data: [{ 
     tag: 'Tag 1', 
    }, { 
     tag: 'Tag 2', 
    }, { 
     tag: 'Tag 3', 
    }], 
    }); 

我嘗試這樣做:

var keywords[] = "{{ json_encode($art->keyword) }}"; 
console.log(keywords); 
$.each(keywords, function(index, value) { 
    alert(index + ": " + value); 
}) 

但後來我收到以下錯誤:

Uncaught TypeError: Cannot use 'in' operator to search for 'length' in ["art"]

我也試過這樣:

var keywords = "{{ json_encode($art->keyword) }}"; 
$.each(JSON.parse(keywords), function(index, value) { 
    alert(index + ": " + value); 
}); 

Recieving此錯誤:

Uncaught SyntaxError: Unexpected token & in JSON at position 1

一切正常如果陣列是數值即[1,2,3]

回答

0
var keywords = '{{ json_encode($art->keyword) }}'; 
if(keywords != 'null'){ 
    var data = JSON.parse(keywords.replace(/&quot;/g,'"')); 
    var option = {}; // my object 
    var options = []; // my array 
    $.each(data, function(index, value) { 
     option = { 
      tag : value 
     } 
     options.push(option); 
    }); 
    console.log(options); 
    $('.chips-initial').material_chip({ 
     data: options, 
    }); 
}