У меня есть ресурс, где я перечисляю все свои проекты с сервера/проектов. Вы можете посетить конкретный проект, идущий в/projects /: slug.Ember добавляет пустую строку в данные с slug как id
Когда я посещаю проекты ресурсов я вижу эти данные в Ember Inspector:
/проекты
id | Slug | Title |
-------------------------------------------------
1 | first-project | First project |
-------------------------------------------------
2 | second-project | Second project |
-------------------------------------------------
3 | third-project | Third project |
Когда я посещаю проект из списка проектов, я получаю те же данные без нового запроса Ajax и все работает нормально. /проекты/первый-проект
Проблема возникает, когда я обновить /проектов/первый-проект страницы. Ember делает запрос ajax для получения данных с сервера, но также вставляет пустую строку с slug как идентификатор для данных.
id | Slug | Title |
-------------------------------------------------------------
first-project | | |
-------------------------------------------------------------
1 | first-project | First project |
Теперь посещение списка проектов. Он отображает список проектов, но в верхней части списка находится эта пустая строка. Почему он вставляет эту строку в мои строки? Может быть, моя логика ошибочна.
<li>
<a id="ember451" class="ember-view" href="/projects/undefined">
<script id="metamorph-13-start" type="text/x-placeholder"></script>
<script id="metamorph-13-end" type="text/x-placeholder"></script>
</a>
</li>
Мой код для проектов:
App.Router.map(function() {
this.resource('project', { path: '/projects' }, function() {
this.resource('project.show', { path: ":post_slug"});
});
});
App.Project = DS.Model.extend({
slug: DS.attr("string"),
title: DS.attr("string")
});
App.ProjectIndexRoute = Ember.Route.extend({
model: function() {
return this.store.find('project').then(function(data) {
return data;
});
}
});
App.ProjectShowRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('project', params.post_slug).then(function(data) {
return data;
});
},
serialize: function(model) {
return { post_slug: model.get("slug") };
}
});
Я использую:
DEBUG: -------------------------------
DEBUG: Ember : 1.1.2
DEBUG: Ember Data : 1.0.0-beta.3
DEBUG: Handlebars : 1.0.0
DEBUG: jQuery : 1.9.1
DEBUG: -------------------------------
Это делает запрос/проекты ajax? Slug = first-project. Когда я изменяю его на {slug: params.slug} для динамического, запрос есть/projects, а часть slug включена. Кстати, мне нужен запрос, чтобы выглядеть так/projects/firs-project not/projects? Slug = first-project. Благодаря! –