#ember.js #routes #ember-data #inflector
#ember.js #маршруты #ember-data #перегибающий
Вопрос:
Мне было интересно, сможет ли кто-нибудь помочь. Я использую неправильное имя маршрута, которое, похоже, работает при вызове createRecord в хранилище, но не при поиске.
В router.js файл, я указываю пути маршрута следующим образом:
this.route('admin', function() {
this.route('staff');
});
// This is so the parent route data does not display in the sub-route
this.route('admin.staff.create-staff', { path: '/admin/staff/create-staff' });
Затем в файле модели inflector я указываю следующие нерегулярности:
inflector.irregular('create-staff', 'staff');
Теперь в маршруте, в функции модели, я указываю следующее:
model(params) {
var model = null;
const id = params.id;
if(id) {
model = this.store.find('create-staff', id);
} else {
model = this.store.createRecord('create-staff');
}
return model;
},
Все работает, когда я вызываю модель без каких-либо параметров запроса (т. Е. она вызывает запрос GET к конечной точке REST API по адресу …../staff /). Но когда я указываю параметры запроса, он работает некорректно и не переходит на нерегулярный путь, как указано выше (т. Е. он вызывает запрос GET к REST API по адресу ……./createStaff/{id}).
Кто-нибудь сможет помочь мне убедиться, что ‘find’ и ‘createRecord’ оба направлены на нерегулярную конечную точку ‘staff’ в REST API?
Заранее спасибо, Грэм
Комментарии:
1. Где
inflector.irregular
код?2. Привет @locks, похоже, у меня проблема, когда я работаю на подуровнях. Когда я создаю адаптер как ’ember g adapter admin / staff / create-staff’, модель как ‘.. admin / staff / create-staff’, маршрут как ‘.. admin / staff / create-staff’ и шаблон как ‘.. admin / staff / create-staff’, я не могу заставить его работать. Я пробовал это с помощью inflector как ‘Inflector.inflector.irregular(‘admin / staff /create-staff’, ‘staff»), но он все равно не будет нацелен на ……/staff. Есть ли у вас какие-либо указания относительно того, какой наилучший способ приблизиться или решить проблемы, с которыми я сталкиваюсь????
3. @locks, код перегиба находится в файле инициализации. Ранее у меня это было в файле модели.