Шаблон Ember не показывает никаких данных
Я только начинаю с Ember.js и использую рельсы на задней части. Проблема в том, что я получаю список элементов, но в моем шаблоне не отображаются данные.
router.js.coffee
App.Router.map (match)->
# match('/').to('index')
@resource "stories"
stories_route.js.coffee
App.StoriesRoute = Ember.Route.extend
model: ->
App.Story.find()
stories.handlebars
<h1>Stories</h1>
<ul>
{{#each story in controller}}
<li>{{story.title}} A</li>
{{else}}
<li>There are no stories.</li>
{{/each}}
</ul>
{{outlet}}
Вот JSON, который я получаю от Rails:
{
"stories":[
{
"story":{
"id":1,
"title":"Test",
"description":"This is a test story"
}
}
]
}
Редактировать:
Я могу получить правильный шаблон для рендеринга, просто данные пустые.
Вот как выглядит HTML:
<div id="ember295" class="ember-view">
<h1>Stories</h1>
<ul>
<script id="metamorph-2-start" type="text/x-placeholder">
</script>
<script id="metamorph-4-start" type="text/x-placeholder">
</script>
<li>
<script id="metamorph-5-start" type="text/x-placeholder">
</script>
<script id="metamorph-5-end" type="text/x-placeholder">
</script>
A
</li>
<script id="metamorph-4-end" type="text/x-placeholder">
</script>
<script id="metamorph-2-end" type="text/x-placeholder">
</script>
</ul>
<script id="metamorph-3-start" type="text/x-placeholder">
</script>
<script id="metamorph-3-end" type="text/x-placeholder"></script>
</div>
1 ответ
Если stories
ваш первый маршрут и доступен на "/"
тогда вы можете определить путь как:
App.Router.map () ->
@resource('stories', {path: '/'})
ИЛИ вы можете определить индексный маршрут и перенаправить оттуда как:
App.IndexRoute = Ember.Route.extend
redirect: ->
@transitionTo('stories')
Смотрите здесь рабочий jsbin, который показывает вторую концепцию.
РЕДАКТИРОВАТЬ
Я полагаю, ваша проблема заключается в том, что если ваш результат содержит набор записей, вам нужно удалить дополнительные story
уровень в вашем JSON, в результате чего-то вроде:
{
"stories":[
{
"id":1,
"title":"Test",
"description":"This is a test story"
}
]
}
и для одной записи, например /stories/123
Ваш JSON должен выглядеть так:
{
"id":1,
"title":"Test",
"description":"This is a test story"
}
Надеюсь, поможет