不加载页面加载视图

时间:2013-12-03 20:39:23

标签: ember.js

Ember.js应用程序

# routes/application.js.coffee
########################################

App.ApplicationRoute = Ember.Route.extend
    model: ->
        @store.findAll('category').then (records) ->
            { 
                categories: records
            }


# routes/categories.js.coffee
########################################

App.CategoriesRoute = Ember.Route.extend
    model: ->
        @store.find 'category'


# routes/category.js.coffee
########################################

App.CategoryRoute = Ember.Route.extend
    model: (params) ->
        serialize: (model, params) ->
            id: model.get('slug')


# templates/application.hbs
########################################

{{ partial 'categories' }}
<p>---</p>

{{ outlet }}


# templates/categories.hbs
########################################

<h1>Categories...</h1>

{{#each category in categories}}
    {{#link-to 'category' category}}
        {{category.title}}
    {{/link-to}}
{{/each}}


# templates/category.hbs
########################################

<h2>{{title}}</h2>
<h3>{{description}}</h3>


# router.js.coffee
########################################
App.Router.map ->
    @resource 'categories', path: 'categories'
    @resource 'category', path: 'category/:slug'


# store.js.coffee
########################################
App.ApplicationAdapter = DS.ActiveModelAdapter.extend
    namespace: 'api/v1'

我想要完成的任务

我在应用程序路径上加载类别,因此数据可用于通过类别部分呈现站点范围的导航。

根据Ember控制台,模型被成功获取并存储。如果它有任何区别,则会对一对多数据进行侧载,称为Sections,它也会成功存储。

类别partial按预期呈现,并带有指向每个部分的链接。单击它们将生成标题和描述的呈现。

有什么问题

刷新应用程序,例如/#/ category / title-1,不会呈现类别视图(标题和描述)。但是,单击类别partial中生成的链接将呈现视图。

我对页面加载的期望是渲染类别视图,而无需单击类别链接。我做错了什么?

1 个答案:

答案 0 :(得分:0)

在玩了很长时间的应用程序之后,我找到了解决问题的方法。

使用Ember控制台时,我看到Category视图的模型被引用到[Object object]而不是App.Category。我不得不指定商店来搜索slug。因此,代码看起来像这样

# routes/category.js.coffee
########################################

App.CategoryRoute = Ember.Route.extend
    model: (params) ->
        serialize: (model, params) ->
            id: model.get('slug')
    @store.find('category', params.slug)

视图现在在页面加载时呈现。