我正在尝试使用我的数据库中的默认值初始化芯片。
根据文档here
这是正确的做法。
$('.chips-initial').material_chip({
data: [{
tag: 'Apple',
}, {
tag: 'Microsoft',
}, {
tag: 'Google',
}],
});
我想要做的是使用单个字符串将这些标记替换为我自己的标记。
这是我到目前为止所尝试过的
我有一个值为{Tag1}{Tag2}{Tag3}
的字符串
我已使用此代码替换该字符串。
var str = Tag;
var mapObj = {
'{':"{tag:'",
'}':"',},"
};
str = str.replace(/{|}/gi, function(matched){
return mapObj[matched];
});
现在,当我尝试使用此格式化字符串str
来匹配正确的初始化格式时。我没有得到我想要的结果。
$('.chips-initial').material_chip({
data: [str],
});
答案 0 :(得分:0)
好的,我已经设法解决了这个问题。我发布此信息是为了帮助遇到同样问题的人。
我做的第一件事就是将mapObj
替换为
var mapObj = {
'{':'"',
'}':'", '
};
因此,通过应用上面的代码,新的替换值将从{Test1}{Test2}{Test3}
发送到"Test1", "Test2", "Test3",
,注意这与json格式类似。
现在宣布一个像这样的新变量
var json = "[" + str + ' " "]';
所以现在它是一个合适的json格式。请注意,最后我添加了一个空格" "
,这是为了防止json格式错误,因为替换后的值将以逗号,
结尾
接下来是解析此json
并添加此var authData
var jsonChips = JSON.parse(json);
var authData = [];
然后这个。
for (i = 0; i < jsonChips.length; i++) {
if(jsonChips[i] != " "){
var tag = {};
tag["tag"] = jsonChips[i];
authData.push(tag);
}
};
之后我放置了authData
$('.chips-initial').material_chip({
data: authData
});
完成了。一切都很好