①优化模板列表显示。
将json格式的数据显示成一般格式的数据。即把这种格式的数据优化一下。
我们需要将一个json字符串中某个属性的值提取出来,用逗号拼接成一个新的字符串,这样的功能比较常用,我们将方法写在baseController.js文件中。
如果对象是:var a ={"id":1,"text":"联想"};
取里面的值有两种方法:
a.id和a.text
或者:a['id']和a['text'],此处id和text是字符串。
//jsonString是String类型的json字符串
//key是集合(数组)[ ]中的元素{ }中的key值,如此处{“id”:1,“text”:“联想”}
//则key可以是“id”,也可以是“text”。
//key传值的时候不能传text即jsonToString(“字符串”,text),不能这样传,因为angularjs没有这个text变量。
//key传值的时候只能传'text'即jsonToString(“字符串”,'text'),或者‘id’,即jsonToString(“字符串”,‘id'),因为将text
//和id当字符串传入
$scope.jsonToString = function(jsonString,key){
//将json字符串jsonString,String类型,转换成json对象
//此处转换成名字叫json的json对象,且此json对象是集合(数组)[ ]类型。
var json = JSON.parse(jsonString);
//value是最终要返回的内容。
var value="";
for(var i=0;i<json.length;i++){
//json[i].key,不对,因为是‘id’,也可能是‘text’
//json[i].text,也不对
//是json[i][key],key传‘id’或者‘text’单引号。
value += "," + json[i][key];
}
return value;
}
entity in list 由代码分析得到list返回的是TbTypeTemplate.java类的集合(数组)[ ]的值。对应的是entity.name、entity.specIds、entity.brandIds和entity.customAttributeItems都是String类型。而且entity.specIds、entity.brandIds和entity.customAttributeItems都是带[ ]的String类型。带[ ]的String类型转换成json对象,是json的集合(数组)类型。
{{jsonToString.(entity.brandIds,'text')}}
{{jsonToString.(entity.specIds,'text')}}
{{jsonToString.(entity.customAttributeItems,'text')}}
得到对应数据库的text字段的值。
但结尾或者开头多了一个分隔逗号。
改进后的代码为:
可以测试。