0

Ich verwende Material Design Tags in meiner Laravel-Anwendung.Bootstrap-Tag für Materialdesign initialisieren

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

Ich möchte mit den Werten dieses Chips Element initialisieren in einer Datenbank gespeichert sind:

["kingfisher", "art"] 

Und Klinge Ich erhalte $art->keywords, wie folgend:

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

Wie kann ich vergeben Dieser Wert unter jQuery-Code?

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

Ich versuchte dies:

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

Aber dann erhalte ich folgende Fehlermeldung:

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

Ich habe auch versucht diese:

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

recieving diesen Fehler:

Uncaught SyntaxError: Unexpected token & in JSON at position 1

Alles ist in Ordnung, wenn das Array numerisch dh ist, [1,2,3]

Antwort

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, 
    }); 
} 
Verwandte Themen