Closed kirzas closed 9 years ago
@Argelein давай в каталоге models создадим по файлику на каждое из таких перечислений и будем их импортировать, куда нужно. В каждом файлике массив.
@sedovalx значит, что к ним надо будет тоже через store обращаться, верно?
@Argelein нет. Это будут простые JS-объекты, возвращаемые модулем.
// app/models/roles.js
export default [
{ id: "Administrator", label: "Администритор" },
{ id: "Accountant", label: "Бухгалтер" },
{ id: "Repairman", label: "Ремонтник" },
{ id: "Cashier", label: "Кассир" }
];
Потом, например, в app/controllers/base/user-controller.js ты делаешь
import roles from "app/models/roles";
и используешь этот массив вместо того поля roles, которое там есть сейчас. Остался вопрос с отображением в списках. Можно в модель пользователя добавить новое вычислимое свойство:
import roles from "app/models/roles";
...
displayRole: function(){
return roles.filter(r => r.id === this.get("role"))[0];
}.property("role")
После чего использовать его в app/controllers/users/index.js
@Argelein сделал пример с ролями
Ок, все понял. Сделал статусы аренд также. Отдельным коммитом не стал делать.
Я про роли для пользователей и я также сделал сейчас статусы аренд. Они сейчас в контроллере задаются статическим массивом с ID и Label. Но они существуют только в среде контроллера, в сами модели сейчас всегда записывается только ID, а Label - только отображение при выборе в new и edit. Если посмотреть на таблицу пользователей, то там видно, что роль отображается на английском языке, т.е. в модель записан ID из массива. Я вижу несколько вариантов исправления, и даже готов это сделать, но я не могу решить, какой путь верный:
@sedovalx подскажи, как лучше сделать и почему :)