我得到一个像这样的JSON数组:
[{"type":"user","id":"12","name":"Name of User"},{"type":"group","id":"9","name":"Name of UserGroup"}]
Backend返回一个带有Name,Id和Type(用户或组)的JSON数组。
在输入到输入字段之前是否有任何方法可以操作id,例如
type+"_"+id
实际上,我正在使用它来初始化tokenInput:
$("input#id").tokenInput(apiURL+"search.php", {
defaultValue:"User or User Group",
hintText:"Fill in User or User Group name.",
noResultsText:"nothing found.",
searchingText:"Searching...",
queryParam:"search",
crossDomain:false,
tokenLimit:5,
preventDuplicates:true,
minChars:3,
resultsFormatter:function(item) {
return "<li><img src="+((item.type=="user") ? "contact" : "contact_group")+ ".png\"/>"+item.name+"</li>";
}
});
在Rory McCrossan的帮助下,我得到了它。将id更改为resultsFormatter方法将执行操作:
resultsFormatter:function(item) {
if (item.id.indexOf("_") == -1)
{
item.id = item.type+"_"+item.id;
}
return "<li><img src="+((item.type=="user") ? "contact" : "contact_group")+ ".png\"/>"+item.name+"</li>";
}
“if(item.id.indexOf(...))”是nessecary,因为tokenInput对条目进行了追踪,如果你搜索相同的字符串,那么id已经有了类型+“_”的前缀,并且得到它/第三/ ......时间。
答案 0 :(得分:1)
试试这个:
resultsFormatter: function(item) {
var itemId = item.type + "_" + item.id;
return "<li id='" + itemId + "'><img src="+((item.type=="user") ? "contact" : "contact_group")+ ".png\"/>"+item.name+"</li>";
}