我正在尝试将我的商店分组到部门名称。部门名称也包含一些空值。当我尝试与sort函数分组时,它的结果来自同名的多个组。
有关详细信息,请参阅此fiddel。我不知道我做错了什么。请建议。
答案 0 :(得分:1)
你的sorterFn错了。
The sorterFn has to return three different values:
1
如果第二个参数严格大于第一个参数。-1
如果第二个参数严格小于第一个参数。0
如果两个参数都是同一组。您的sorterFn永远不会返回0
。试试这个:
sorterFn: function(a, b) {
if(a.get('department')=="Management" && b.get('department')=="Management") return 0;
if(a.get('department')=="Management") return 1;
if(b.get('department')=="Management") return -1;
if(a.get('department') < b.get('department')) return 1;
if(a.get('department') > b.get('department')) return -1;
return 0;
},
此外,您的transform
功能无用。它仅从您覆盖的原始sorterFn
中调用。如果您愿意,您必须在sorterFn中考虑空值。 (但是,通常情况下会有一些后备类别,如&#34;其他&#34;最终,而不是&#34; IT&#34;以及&#34;销售&#34;。
此外,要在标题行中写入部门,您必须覆盖groupHeaderTpl
模板,例如
groupHeaderTpl: [
'<tpl if=\'name\'>{name}<tpl else>Others</tpl>'
]