Я изучаю ember.js с помощью этого руководства При использовании ember-cli-mirage для создания поддельной модели для подобных задач
import Mirage, {faker} from 'ember-cli-mirage';
export default Mirage.Factory.extend({
title(i) { return 'Todo title ${i + 1}'; },
complete: faker.list.random(true, false)
});
моя конфигурация миража выглядит следующим образом
export default function() {
this.get('/todos', function(db, request) {
return {
data: db.todos.map(attrs => (
{type: 'todos', id: attrs.id, attributes: attrs }
))
};
});
this.post('/todos', function(db, request) {
let attrs = JSON.parse(request.requestBody);
let todo = db.todos.insert(attrs);
return {
data: {
type: 'todos',
id: todo.id,
attributs: todo
}
};
});
this.patch('/todos/:id', function(db, request) {
let attrs = JSON.parse(request.requestBody);
let todo = db.todos.update(attrs.data.id, attrs.data.attributes);
return {
data: {
type: "todos",
id: todo.id,
attributes: todo
}
};
});
this.del('/todos/:id');
}
Меня больше беспокоят модели. Имя модели - «todos», и Ember каким-то образом меняет его на «todo» при работе с отдельной записью.
Из моего маршрута todos я возвращаю модель следующим образом
маршруты / todos.js
model() {
return this.store.findAll('todos');
}
И тогда я не понимаю приведенный выше код - в учебнике сказано, что он должен быть this.store.findAll(**'todo'**);
, но это не возвращает никаких данных в консоль ember. Я изменил его на 'todos' и вижу некоторые результаты. (вывод в конце)
В routes / todos / index.js - Возвращаем modelFor ('todos')
model(){
return this.modelFor('todos');
}
А в шаблоне - todos / index.hbs
<ul id="todo-list">
{{#each model as |todo| }}
{{todo-item todo=todo}}
{{/each}}
</ul>
Я понимаю, что индекс получает эту модель из todos.hbs. {{Outlet}} todos.hbs выглядит так, как показано ниже.
<input type="text" id="new-todo" placeholder="What needs to be done?" />
{{#todo-list todos=model}}
{{outlet}}
{{/todo-list}}
Когда я запускаю это приложение, я получаю следующую ошибку.
На выходе я получаю данные из запроса на получение по / -> это маршрут задач. Но я не получаю доступ к задачам в маршруте задач / индекса.
Спасибо за помощь. Все фрагменты кода взяты из руководства.