所以我打算做的事情通常是严重而可怕的,但我必须处理我给出的数据。
我的调查问卷对所有用户都是一样的。它具有以下属性:id,name,required。在数据库中,名称字段按此顺序显示:
cell_phone
city
date_of_birth
email
first_name
graduation_year
last_name
phone
state
coach
name
此订单基于其ID。我需要它们以更直观的方式出现在页面上,即:
first_name
last_name
email
phone
city
state
zip
...
在我的路线中,我只是设置模型:
userId = App.Session.get("userId")
@store.find("questionnaire", userId: userId)
有没有办法映射从模型返回的数组,基本上硬编码这个顺序,或者在控制器中对模型进行排序,以匹配基于名称或索引的给定顺序?
答案 0 :(得分:1)
您可以使用所需的顺序创建数组,然后按项目索引排序:
var order = [
'first_name',
'last_name',
'email',
'phone',
'city',
'state',
'zip'
];
questions.sort(function(a, b) {
return order.indexOf(a.name) - order.indexOf(b.name);
});
您可以将该逻辑放入计算属性中,或在find
完成时映射数据