0

我在我的 Laravel 应用程序中使用Material Design 标签。

<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 );
})

但后来我收到以下错误:

未捕获的类型错误:无法使用 'in' 运算符在 ["art"] 中搜索 'length'

我也试过这个:

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

收到此错误:

未捕获的 SyntaxError:意外的令牌和位置 1 的 JSON

如果数组是数字的,一切都很好,即[1,2,3]

4

1 回答 1

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,
    });
}
于 2017-10-03T08:43:22.407 回答